From 7484bf75cf22435272d7c8053a1f326c8ee65644 Mon Sep 17 00:00:00 2001 From: Roberto Tonino Date: Thu, 18 Jun 2020 18:29:38 +0200 Subject: [PATCH] updated rollup plugin node-resolve; improved favorites refresh animation --- package-lock.json | 26 ++++++++++++++----- package.json | 2 +- public/css/style.css | 2 +- public/index.html | 15 ++++++----- public/js/bundle.js | 2 +- src/js/app.js | 18 ++++++------- src/js/modules/components/favorites-tab.js | 22 ++++++++++++---- src/styles/scss/base/_animations.scss | 9 +++++++ src/styles/scss/style.scss | 1 + src/styles/scss/tabs/_favorites-tab.scss | 30 +++++++--------------- src/styles/scss/tabs/_tabs.scss | 5 ++-- 11 files changed, 79 insertions(+), 53 deletions(-) create mode 100644 src/styles/scss/base/_animations.scss diff --git a/package-lock.json b/package-lock.json index d7dd4bf..71cbc52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,14 +53,16 @@ } }, "@rollup/plugin-node-resolve": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", - "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.0.1.tgz", + "integrity": "sha512-KIeAmueDDaYMqMBnUngLVVZhURwxA12nq/YB6nGm5/JpVyOMwI1fCVU3oL/dAnnLBG7oiPXntO5LHOiMrfNXCA==", "dev": true, "requires": { "@rollup/pluginutils": "^3.0.8", "@types/resolve": "0.0.8", "builtin-modules": "^3.1.0", + "deep-freeze": "^0.0.1", + "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.14.2" } @@ -93,9 +95,9 @@ "dev": true }, "@types/node": { - "version": "13.13.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.5.tgz", - "integrity": "sha512-3ySmiBYJPqgjiHA7oEaIo2Rzz0HrOZ7yrNO5HWyaE5q0lQ3BppDZ3N53Miz8bw2I7gh1/zir2MGVZBvpb1zq9g==", + "version": "14.0.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.13.tgz", + "integrity": "sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==", "dev": true }, "@types/resolve": { @@ -236,6 +238,18 @@ "which": "^1.2.9" } }, + "deep-freeze": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", + "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", diff --git a/package.json b/package.json index 31ef41f..0cbd03c 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "devDependencies": { "@rollup/plugin-alias": "^3.1.0", "@rollup/plugin-commonjs": "^11.0.2", - "@rollup/plugin-node-resolve": "^7.0.0", + "@rollup/plugin-node-resolve": "^8.0.1", "@rollup/plugin-replace": "^2.3.2", "npm-run-all": "^4.1.5", "rimraf": "^3.0.2", diff --git a/public/css/style.css b/public/css/style.css index 18e106e..05a5774 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -1 +1 @@ -html{height:100vh;--main-scroll: hsl(0, 0%, 33%);--panels-scroll: hsl(180, 2%, 17%);--accent-color: hsl(210, 100%, 52%);--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%);--explicit-separator: 0.3125em}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%);--panels-background: hsl(210, 3%, 14%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 0%);--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%);--panels-background: hsl(0, 0%, 10%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 87%);--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%);--table-bg: hsl(261, 74%, 6%);--table-zebra: hsl(257, 61%, 10%);--table-highlight: hsl(257, 66%, 27%)}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}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:active{background-color:var(--accent-color);transform:scale(0.95)}button:hover{background:none;border:1px solid var(--accent-color)}#loading_overlay{justify-content:center;align-items:center;position:absolute;flex-direction:column;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.5);display:none;z-index:1000}#loading_overlay.active{display:flex}#loading_text{margin-bottom:20px}#main_content{margin-left:48px;width:calc(100% - 48px);height:100%;display:flex}img.rounded{border-radius:5px}img.circle{border-radius:50%}.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%);-ms-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}i.disabled{opacity:.5;cursor:default}i.explicit_icon{color:#ff3b30;margin-right:var(--explicit-separator)}span.tag{background-color:var(--tag-background);border-radius:2px;color:var(--tag-text);display:inline-block;font-size:10px;padding:3px 6px}a,a:visited{color:#1e90ff}.clickable{cursor:pointer !important}.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)}.inline-flex{display:flex;align-items:center}.inline-flex .right{margin-left:auto}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}.right{float:right}.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}.tab{margin:16px 0px}.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}.hide{display:none !important}.table{width:100%;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;--vertical-separator: 7px}.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:var(--vertical-separator) 10px}.table td:first-child{padding:var(--vertical-separator) 10px var(--vertical-separator) 20px}.table td:last-child{padding:var(--vertical-separator) 20px var(--vertical-separator) 10px}.table td img{vertical-align:middle}.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}.table--tracks{border-collapse:collapse;--radius: 3px}.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:var(--radius)}.table--tracks tr:first-child td:last-child{border-top-right-radius:var(--radius)}.table--tracks tr:last-child td:first-child{border-bottom-left-radius:var(--radius)}.table--tracks tr:last-child td:last-child{border-bottom-right-radius:var(--radius)}.table--tracklist thead{border-bottom:2px solid var(--table-highlight)}.table--tracklist th{height:45px;padding:var(--vertical-separator) 10px}.table--tracklist th:first-child{padding:var(--vertical-separator) 10px var(--vertical-separator) 20px}.table--tracklist th:last-child{padding:var(--vertical-separator) 20px var(--vertical-separator) 10px}.table--tracklist td{height:35px}.explicit_tracklist{margin-left:var(--explicit-separator)}.table--charts td{height:35px}.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}#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::-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_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 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.slim>.download_object .download_info{display:block}.download_object>.download_bar>.queue_icon{cursor:default;margin-left:8px}.download_object>.download_bar{display:flex;align-items:center;height:24px}.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}#download_tab_container.tab_hidden{width:32px}#download_tab_container.tab_hidden #toggle_download_tab{margin-left:4px}#download_tab_container.tab_hidden #download_tab_drag_handler{display:none}#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::after{content:"downloads";display:flex;align-items:center;text-transform:capitalize;writing-mode:vertical-rl;line-height:32px}#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}.favorites_tablinks.active{color:var(--accent-text)}div.reload-button{width:36px;height:36px}div.reload-button i{padding:6px}div.reload-button.spin{animation-name:spin;animation-duration:.5s;animation-iteration-count:infinite;animation-timing-function:ease-out}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}#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)}.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)}.search_tablinks.active{color:var(--foreground-inverted)}#main_search .top_result_header{display:block;cursor:default;font-size:2rem;text-align:center}.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--with-icon{display:inline-flex;align-items:center}.settings-group__header--with-icon i.material-icons{margin-right:15px}.settings-container{display:flex}.settings-container__half>*,.settings-container__third>*{margin-bottom:15px}.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}.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 button{background-color:var(--primary-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}.main_tablinks_text{overflow:hidden;white-space:nowrap}.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:1em;border-top:3px solid var(--foreground);text-align:center}.section-tabs__tab.active{color:var(--accent-color);border-top:3px solid var(--accent-color)}.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)}}#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;transition:color 250ms ease-in-out;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:calc(100% - 10px);height:calc(100% - 93px);overflow-y:scroll;overflow-x:hidden;padding-left:10px}#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{margin:0 auto;max-width:1280px;width:90%}.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{background-color:none;margin:auto;width:30%;align-items:center;position:relative;top:50%;transform:translateY(-50%)}.smallmodal-content button{width:100%;margin-bottom:8px}@media only screen and (min-width: 601px){#container,.smallmodal-content{width:85%}}@media only screen and (min-width: 993px){#container,.smallmodal-content{width:70%}}@media only screen and (max-width: 600px){#container,.smallmodal-content{width:100%}}.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}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.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;-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.toastify .circle-loader{border-bottom-color:var(--toast-secondary)}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}#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.active .side_icon{color:var(--accent-color)}#sidebar .main_tablinks:not(#theme_selector){display:flex;align-items:center;margin-top:5px;cursor:pointer}#sidebar .main_tablinks:not(#theme_selector):hover{background-color:#3e3e3e}#sidebar .main_tablinks_text{display:none;display:inline-block;margin-left:20px;opacity:0;visibility:hidden;transition:all 50ms ease-in-out 200ms}#sidebar .side_icon{font-size:30px;padding:9px}#sidebar .side_icon.side_icon--theme{cursor:default}#sidebar .side_icon::selection{background:none}#sidebar:hover #theme_togglers{position:relative;opacity:1;transition-delay:200ms}#sidebar:hover .main_tablinks_text{display:inline-block;opacity:1;visibility:visible}#theme_selector{margin-top:20px;display:flex;height:50px}#theme_togglers{display:flex;opacity:0;width:100%;justify-content:space-evenly;align-items:center;transition:all 50ms ease 0s}.theme_toggler{width:25px;height:25px;border-radius:1000px;border:1px solid var(--separator);cursor:pointer;transition:border 200ms ease-in-out}.theme_toggler--active{border-width:3px}.theme_toggler[data-theme-variant=light]{background:#fff}.theme_toggler[data-theme-variant=dark]{background:#141414}.theme_toggler[data-theme-variant=purple]{background:#460ead}.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}a.single-cover{position:relative;display:inline-block;color:#fff} +html{height:100vh;--main-scroll: hsl(0, 0%, 33%);--panels-scroll: hsl(180, 2%, 17%);--accent-color: hsl(210, 100%, 52%);--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%);--explicit-separator: 0.3125em}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%);--panels-background: hsl(210, 3%, 14%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 0%);--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%);--panels-background: hsl(0, 0%, 10%);--panels-text: hsl(0, 0%, 100%);--accent-text: hsl(0, 0%, 87%);--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%);--table-bg: hsl(261, 74%, 6%);--table-zebra: hsl(257, 61%, 10%);--table-highlight: hsl(257, 66%, 27%)}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}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}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:active{background-color:var(--accent-color);transform:scale(0.95)}button:hover{background:none;border:1px solid var(--accent-color)}#loading_overlay{justify-content:center;align-items:center;position:absolute;flex-direction:column;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.5);display:none;z-index:1000}#loading_overlay.active{display:flex}#loading_text{margin-bottom:20px}#main_content{margin-left:48px;width:calc(100% - 48px);height:100%;display:flex}img.rounded{border-radius:5px}img.circle{border-radius:50%}.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%);-ms-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}i.disabled{opacity:.5;cursor:default}i.explicit_icon{color:#ff3b30;margin-right:var(--explicit-separator)}span.tag{background-color:var(--tag-background);border-radius:2px;color:var(--tag-text);display:inline-block;font-size:10px;padding:3px 6px}a,a:visited{color:#1e90ff}.clickable{cursor:pointer !important}.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)}.inline-flex{display:flex;align-items:center}.inline-flex .right{margin-left:auto}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}.right{float:right}.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}.tab{margin:16px 0px}.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}.hide{display:none !important}.table{width:100%;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;--vertical-separator: 7px}.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:var(--vertical-separator) 10px}.table td:first-child{padding:var(--vertical-separator) 10px var(--vertical-separator) 20px}.table td:last-child{padding:var(--vertical-separator) 20px var(--vertical-separator) 10px}.table td img{vertical-align:middle}.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}.table--tracks{border-collapse:collapse;--radius: 3px}.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:var(--radius)}.table--tracks tr:first-child td:last-child{border-top-right-radius:var(--radius)}.table--tracks tr:last-child td:first-child{border-bottom-left-radius:var(--radius)}.table--tracks tr:last-child td:last-child{border-bottom-right-radius:var(--radius)}.table--tracklist thead{border-bottom:2px solid var(--table-highlight)}.table--tracklist th{height:45px;padding:var(--vertical-separator) 10px}.table--tracklist th:first-child{padding:var(--vertical-separator) 10px var(--vertical-separator) 20px}.table--tracklist th:last-child{padding:var(--vertical-separator) 20px var(--vertical-separator) 10px}.table--tracklist td{height:35px}.explicit_tracklist{margin-left:var(--explicit-separator)}.table--charts td{height:35px}.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}#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::-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_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 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.slim>.download_object .download_info{display:block}.download_object>.download_bar>.queue_icon{cursor:default;margin-left:8px}.download_object>.download_bar{display:flex;align-items:center;height:24px}.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}#download_tab_container.tab_hidden{width:32px}#download_tab_container.tab_hidden #toggle_download_tab{margin-left:4px}#download_tab_container.tab_hidden #download_tab_drag_handler{display:none}#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::after{content:"downloads";display:flex;align-items:center;text-transform:capitalize;writing-mode:vertical-rl;line-height:32px}#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}.favorites_tablinks.active{color:var(--accent-text)}.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)}.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)}.search_tablinks.active{color:var(--foreground-inverted)}#main_search .top_result_header{display:block;cursor:default;font-size:2rem;text-align:center}.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--with-icon{display:inline-flex;align-items:center}.settings-group__header--with-icon i.material-icons{margin-right:15px}.settings-container{display:flex}.settings-container__half>*,.settings-container__third>*{margin-bottom:15px}.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}.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 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}.main_tablinks_text{overflow:hidden;white-space:nowrap}.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)}.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)}}#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;transition:color 250ms ease-in-out;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:calc(100% - 10px);height:calc(100% - 93px);overflow-y:scroll;overflow-x:hidden;padding-left:10px}#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{margin:0 auto;max-width:1280px;width:90%}.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{background-color:none;margin:auto;width:30%;align-items:center;position:relative;top:50%;transform:translateY(-50%)}.smallmodal-content button{width:100%;margin-bottom:8px}@media only screen and (min-width: 601px){#container,.smallmodal-content{width:85%}}@media only screen and (min-width: 993px){#container,.smallmodal-content{width:70%}}@media only screen and (max-width: 600px){#container,.smallmodal-content{width:100%}}.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}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.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;-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.toastify .circle-loader{border-bottom-color:var(--toast-secondary)}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}#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.active .side_icon{color:var(--accent-color)}#sidebar .main_tablinks:not(#theme_selector){display:flex;align-items:center;margin-top:5px;cursor:pointer}#sidebar .main_tablinks:not(#theme_selector):hover{background-color:#3e3e3e}#sidebar .main_tablinks_text{display:none;display:inline-block;margin-left:20px;opacity:0;visibility:hidden;transition:all 50ms ease-in-out 200ms}#sidebar .side_icon{font-size:30px;padding:9px}#sidebar .side_icon.side_icon--theme{cursor:default}#sidebar .side_icon::selection{background:none}#sidebar:hover #theme_togglers{position:relative;opacity:1;transition-delay:200ms}#sidebar:hover .main_tablinks_text{display:inline-block;opacity:1;visibility:visible}#theme_selector{margin-top:20px;display:flex;height:50px}#theme_togglers{display:flex;opacity:0;width:100%;justify-content:space-evenly;align-items:center;transition:all 50ms ease 0s}.theme_toggler{width:25px;height:25px;border-radius:1000px;border:1px solid var(--separator);cursor:pointer;transition:border 200ms ease-in-out}.theme_toggler--active{border-width:3px}.theme_toggler[data-theme-variant=light]{background:#fff}.theme_toggler[data-theme-variant=dark]{background:#141414}.theme_toggler[data-theme-variant=purple]{background:#460ead}.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}a.single-cover{position:relative;display:inline-block;color:#fff} diff --git a/public/index.html b/public/index.html index e8d533b..30a0dbc 100644 --- a/public/index.html +++ b/public/index.html @@ -466,16 +466,19 @@

Charts

-

Favorites

+

+ Favorites +
+ sync +
+

-
- sync -
+
@@ -1473,4 +1476,4 @@

Errors for {{ title }}

- + \ No newline at end of file diff --git a/public/js/bundle.js b/public/js/bundle.js index 91a561d..f667073 100644 --- a/public/js/bundle.js +++ b/public/js/bundle.js @@ -37,4 +37,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. * (c) 2014-2019 Evan You * Released under the MIT License. */ -var At=Object.freeze({});function Et(e){return null==e}function $t(e){return null!=e}function Ot(e){return!0===e}function jt(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function Lt(e){return null!==e&&"object"==typeof e}var Nt=Object.prototype.toString;function Dt(e){return"[object Object]"===Nt.call(e)}function It(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function Mt(e){return $t(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function Pt(e){return null==e?"":Array.isArray(e)||Dt(e)&&e.toString===Nt?JSON.stringify(e,null,2):String(e)}function Rt(e){var t=parseFloat(e);return isNaN(t)?e:t}function Bt(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i-1)return e.splice(n,1)}}var zt=Object.prototype.hasOwnProperty;function Ut(e,t){return zt.call(e,t)}function Vt(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var Wt=/-(\w)/g,Gt=Vt((function(e){return e.replace(Wt,(function(e,t){return t?t.toUpperCase():""}))})),Kt=Vt((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),Qt=/\B([A-Z])/g,Jt=Vt((function(e){return e.replace(Qt,"-$1").toLowerCase()}));var Xt=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function Yt(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function Zt(e,t){for(var n in t)e[n]=t[n];return e}function en(e){for(var t={},n=0;n0,Tn=_n&&_n.indexOf("edge/")>0,kn=(_n&&_n.indexOf("android"),_n&&/iphone|ipad|ipod|ios/.test(_n)||"ios"===bn),Cn=(_n&&/chrome\/\d+/.test(_n),_n&&/phantomjs/.test(_n),_n&&_n.match(/firefox\/(\d+)/)),Sn={}.watch,An=!1;if(gn)try{var En={};Object.defineProperty(En,"passive",{get:function(){An=!0}}),window.addEventListener("test-passive",null,En)}catch(e){}var $n=function(){return void 0===vn&&(vn=!gn&&!yn&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),vn},On=gn&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function jn(e){return"function"==typeof e&&/native code/.test(e.toString())}var Ln,Nn="undefined"!=typeof Symbol&&jn(Symbol)&&"undefined"!=typeof Reflect&&jn(Reflect.ownKeys);Ln="undefined"!=typeof Set&&jn(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var Dn=tn,In=0,Mn=function(){this.id=In++,this.subs=[]};Mn.prototype.addSub=function(e){this.subs.push(e)},Mn.prototype.removeSub=function(e){Ht(this.subs,e)},Mn.prototype.depend=function(){Mn.target&&Mn.target.addDep(this)},Mn.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t-1)if(o&&!Ut(i,"default"))a=!1;else if(""===a||a===Jt(e)){var l=pr(String,i.type);(l<0||s0&&(Mr((i=e(i,(n||"")+"_"+r))[0])&&Mr(a)&&(s[o]=zn(a.text+i[0].text),i.shift()),s.push.apply(s,i)):jt(i)?Mr(a)?s[o]=zn(a.text+i):""!==i&&s.push(zn(i)):Mr(i)&&Mr(a)?s[o]=zn(a.text+i.text):(Ot(t._isVList)&&$t(i.tag)&&Et(i.key)&&$t(n)&&(i.key="__vlist"+n+"_"+r+"__"),s.push(i)));return s}(e):void 0}function Mr(e){return $t(e)&&$t(e.text)&&!1===e.isComment}function Pr(e,t){if(e){for(var n=Object.create(null),r=Nn?Reflect.ownKeys(e):Object.keys(e),i=0;i0,o=e?!!e.$stable:!i,a=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(o&&n&&n!==At&&a===n.$key&&!i&&!n.$hasNormal)return n;for(var s in r={},e)e[s]&&"$"!==s[0]&&(r[s]=qr(t,s,e[s]))}else r={};for(var l in t)l in r||(r[l]=Hr(t,l));return e&&Object.isExtensible(e)&&(e._normalized=r),pn(r,"$stable",o),pn(r,"$key",a),pn(r,"$hasNormal",i),r}function qr(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:Ir(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function Hr(e,t){return function(){return e[t]}}function zr(e,t){var n,r,i,o,a;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),r=0,i=e.length;rdocument.createEvent("Event").timeStamp&&(Ni=function(){return Di.now()})}function Ii(){var e,t;for(Li=Ni(),Oi=!0,Si.sort((function(e,t){return e.id-t.id})),ji=0;jiji&&Si[n].id>e.id;)n--;Si.splice(n+1,0,e)}else Si.push(e);$i||($i=!0,Ar(Ii))}}(this)},Pi.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||Lt(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){hr(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},Pi.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Pi.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},Pi.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||Ht(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Ri={enumerable:!0,configurable:!0,get:tn,set:tn};function Bi(e,t,n){Ri.get=function(){return this[t][n]},Ri.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Ri)}function Fi(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&Qn(!1);var o=function(o){i.push(o);var a=cr(o,t,n,e);Yn(r,o,a),o in e||Bi(e,"_props",o)};for(var a in t)o(a);Qn(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?tn:Xt(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;Dt(t=e._data="function"==typeof t?function(e,t){Rn();try{return e.call(t,t)}catch(e){return hr(e,t,"data()"),{}}finally{Bn()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&Ut(r,o)||fn(o)||Bi(e,"_data",o)}Xn(t,!0)}(e):Xn(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=$n();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new Pi(e,a||tn,tn,qi)),i in e||Hi(e,i,o)}}(e,t.computed),t.watch&&t.watch!==Sn&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(n=e,"[object RegExp]"===Nt.call(n)&&e.test(t));var n}function Yi(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=Ji(a.componentOptions);s&&!t(s)&&Zi(n,o,r,i)}}}function Zi(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,Ht(n,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=Wi++,t._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=lr(Gi(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&_i(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,r=n&&n.context;e.$slots=Rr(t._renderChildren,r),e.$scopedSlots=At,e._c=function(t,n,r,i){return di(e,t,n,r,i,!1)},e.$createElement=function(t,n,r,i){return di(e,t,n,r,i,!0)};var i=n&&n.data;Yn(e,"$attrs",i&&i.attrs||At,null,!0),Yn(e,"$listeners",t._parentListeners||At,null,!0)}(t),Ci(t,"beforeCreate"),function(e){var t=Pr(e.$options.inject,e);t&&(Qn(!1),Object.keys(t).forEach((function(n){Yn(e,n,t[n])})),Qn(!0))}(t),Fi(t),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(t),Ci(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}(Ki),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=Zn,e.prototype.$delete=er,e.prototype.$watch=function(e,t,n){if(Dt(t))return Vi(this,e,t,n);(n=n||{}).user=!0;var r=new Pi(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){hr(e,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(Ki),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i1?Yt(n):n;for(var r=Yt(arguments,1),i='event handler for "'+e+'"',o=0,a=n.length;oparseInt(this.max)&&Zi(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return cn}};Object.defineProperty(e,"config",t),e.util={warn:Dn,extend:Zt,mergeOptions:lr,defineReactive:Yn},e.set=Zn,e.delete=er,e.nextTick=Ar,e.observable=function(e){return Xn(e),e},e.options=Object.create(null),ln.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,Zt(e.options.components,to),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=Yt(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=lr(this.options,e),this}}(e),Qi(e),function(e){ln.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&Dt(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)}(Ki),Object.defineProperty(Ki.prototype,"$isServer",{get:$n}),Object.defineProperty(Ki.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Ki,"FunctionalRenderContext",{value:ii}),Ki.version="2.6.11";var no=Bt("style,class"),ro=Bt("input,textarea,option,select,progress"),oo=function(e,t,n){return"value"===n&&ro(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},ao=Bt("contenteditable,draggable,spellcheck"),so=Bt("events,caret,typing,plaintext-only"),lo=Bt("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),uo="http://www.w3.org/1999/xlink",co=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},fo=function(e){return co(e)?e.slice(6,e.length):""},po=function(e){return null==e||!1===e};function ho(e){for(var t=e.data,n=e,r=e;$t(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=vo(r.data,t));for(;$t(n=n.parent);)n&&n.data&&(t=vo(t,n.data));return function(e,t){if($t(e)||$t(t))return mo(e,go(t));return""}(t.staticClass,t.class)}function vo(e,t){return{staticClass:mo(e.staticClass,t.staticClass),class:$t(e.class)?[e.class,t.class]:t.class}}function mo(e,t){return e?t?e+" "+t:e:t||""}function go(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,i=e.length;r-1?Ho(e,t,n):lo(t)?po(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):ao(t)?e.setAttribute(t,function(e,t){return po(t)||"false"===t?"false":"contenteditable"===e&&so(t)?t:"true"}(t,n)):co(t)?po(n)?e.removeAttributeNS(uo,fo(t)):e.setAttributeNS(uo,t,n):Ho(e,t,n)}function Ho(e,t,n){if(po(n))e.removeAttribute(t);else{if(wn&&!xn&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var zo={create:Fo,update:Fo};function Uo(e,t){var n=t.elm,r=t.data,i=e.data;if(!(Et(r.staticClass)&&Et(r.class)&&(Et(i)||Et(i.staticClass)&&Et(i.class)))){var o=ho(t),a=n._transitionClasses;$t(a)&&(o=mo(o,go(a))),o!==n._prevClass&&(n.setAttribute("class",o),n._prevClass=o)}}var Vo,Wo,Go,Ko,Qo,Jo,Xo={create:Uo,update:Uo},Yo=/[\w).+\-_$\]]/;function Zo(e){var t,n,r,i,o,a=!1,s=!1,l=!1,u=!1,c=0,d=0,f=0,p=0;for(r=0;r=0&&" "===(v=e.charAt(h));h--);v&&Yo.test(v)||(u=!0)}}else void 0===i?(p=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(p,r).trim()),p=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==p&&m(),o)for(r=0;r-1?{exp:e.slice(0,Ko),key:'"'+e.slice(Ko+1)+'"'}:{exp:e,key:null};Wo=e,Ko=Qo=Jo=0;for(;!ma();)ga(Go=va())?ba(Go):91===Go&&ya(Go);return{exp:e.slice(0,Qo),key:e.slice(Qo+1,Jo)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function va(){return Wo.charCodeAt(++Ko)}function ma(){return Ko>=Vo}function ga(e){return 34===e||39===e}function ya(e){var t=1;for(Qo=Ko;!ma();)if(ga(e=va()))ba(e);else if(91===e&&t++,93===e&&t--,0===t){Jo=Ko;break}}function ba(e){for(var t=e;!ma()&&(e=va())!==t;);}var _a;function wa(e,t,n){var r=_a;return function i(){var o=t.apply(null,arguments);null!==o&&ka(e,i,n,r)}}var xa=br&&!(Cn&&Number(Cn[1])<=53);function Ta(e,t,n,r){if(xa){var i=Li,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}_a.addEventListener(e,t,An?{capture:n,passive:r}:n)}function ka(e,t,n,r){(r||_a).removeEventListener(e,t._wrapper||t,n)}function Ca(e,t){if(!Et(e.data.on)||!Et(t.data.on)){var n=t.data.on||{},r=e.data.on||{};_a=t.elm,function(e){if($t(e.__r)){var t=wn?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}$t(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),Lr(n,r,Ta,ka,wa,t.context),_a=void 0}}var Sa,Aa={create:Ca,update:Ca};function Ea(e,t){if(!Et(e.data.domProps)||!Et(t.data.domProps)){var n,r,i=t.elm,o=e.data.domProps||{},a=t.data.domProps||{};for(n in $t(a.__ob__)&&(a=t.data.domProps=Zt({},a)),o)n in a||(i[n]="");for(n in a){if(r=a[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===o[n])continue;1===i.childNodes.length&&i.removeChild(i.childNodes[0])}if("value"===n&&"PROGRESS"!==i.tagName){i._value=r;var s=Et(r)?"":String(r);$a(i,s)&&(i.value=s)}else if("innerHTML"===n&&_o(i.tagName)&&Et(i.innerHTML)){(Sa=Sa||document.createElement("div")).innerHTML=""+r+"";for(var l=Sa.firstChild;i.firstChild;)i.removeChild(i.firstChild);for(;l.firstChild;)i.appendChild(l.firstChild)}else if(r!==o[n])try{i[n]=r}catch(e){}}}}function $a(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if($t(r)){if(r.number)return Rt(n)!==Rt(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var Oa={create:Ea,update:Ea},ja=Vt((function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}})),t}));function La(e){var t=Na(e.style);return e.staticStyle?Zt(e.staticStyle,t):t}function Na(e){return Array.isArray(e)?en(e):"string"==typeof e?ja(e):e}var Da,Ia=/^--/,Ma=/\s*!important$/,Pa=function(e,t,n){if(Ia.test(t))e.style.setProperty(t,n);else if(Ma.test(n))e.style.setProperty(Jt(t),n.replace(Ma,""),"important");else{var r=Ba(t);if(Array.isArray(n))for(var i=0,o=n.length;i-1?t.split(Ha).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function Ua(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(Ha).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function Va(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&Zt(t,Wa(e.name||"v")),Zt(t,e),t}return"string"==typeof e?Wa(e):void 0}}var Wa=Vt((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),Ga=gn&&!xn,Ka="transition",Qa="transitionend",Ja="animation",Xa="animationend";Ga&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ka="WebkitTransition",Qa="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ja="WebkitAnimation",Xa="webkitAnimationEnd"));var Ya=gn?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Za(e){Ya((function(){Ya(e)}))}function es(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),za(e,t))}function ts(e,t){e._transitionClasses&&Ht(e._transitionClasses,t),Ua(e,t)}function ns(e,t,n){var r=is(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s="transition"===i?Qa:Xa,l=0,u=function(){e.removeEventListener(s,c),n()},c=function(t){t.target===e&&++l>=a&&u()};setTimeout((function(){l0&&(n="transition",c=a,d=o.length):"animation"===t?u>0&&(n="animation",c=u,d=l.length):d=(n=(c=Math.max(a,u))>0?a>u?"transition":"animation":null)?"transition"===n?o.length:l.length:0,{type:n,timeout:c,propCount:d,hasTransform:"transition"===n&&rs.test(r[Ka+"Property"])}}function os(e,t){for(;e.length1}function ds(e,t){!0!==t.data.show&&ss(t)}var fs=function(e){var t,n,r={},i=e.modules,o=e.nodeOps;for(t=0;tf?h(e,Et(n[g+1])?null:n[g+1].elm,n,d,g,r):d>g&&m(t,c,f)}(u,p,v,n,l):$t(v)?($t(e.text)&&o.setTextContent(u,""),h(u,null,v,0,v.length-1,n)):$t(p)?m(p,0,p.length-1):$t(e.text)&&o.setTextContent(u,""):e.text!==t.text&&o.setTextContent(u,t.text),$t(f)&&$t(c=f.hook)&&$t(c=c.postpatch)&&c(e,t)}}}function _(e,t,n){if(Ot(n)&&$t(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r-1,a.selected!==o&&(a.selected=o);else if(on(gs(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function ms(e,t){return t.every((function(t){return!on(t,e)}))}function gs(e){return"_value"in e?e._value:e.value}function ys(e){e.target.composing=!0}function bs(e){e.target.composing&&(e.target.composing=!1,_s(e.target,"input"))}function _s(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function ws(e){return!e.componentInstance||e.data&&e.data.transition?e:ws(e.componentInstance._vnode)}var xs={model:ps,show:{bind:function(e,t,n){var r=t.value,i=(n=ws(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,ss(n,(function(){e.style.display=o}))):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=ws(n)).data&&n.data.transition?(n.data.show=!0,r?ss(n,(function(){e.style.display=e.__vOriginalDisplay})):ls(n,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},Ts={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function ks(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?ks(mi(t.children)):e}function Cs(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[Gt(o)]=i[o];return t}function Ss(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var As=function(e){return e.tag||vi(e)},Es=function(e){return"show"===e.name},$s={name:"transition",props:Ts,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(As)).length){var r=this.mode,i=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return i;var o=ks(i);if(!o)return i;if(this._leaving)return Ss(e,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:jt(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var s=(o.data||(o.data={})).transition=Cs(this),l=this._vnode,u=ks(l);if(o.data.directives&&o.data.directives.some(Es)&&(o.data.show=!0),u&&u.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(o,u)&&!vi(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var c=u.data.transition=Zt({},s);if("out-in"===r)return this._leaving=!0,Nr(c,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),Ss(e,i);if("in-out"===r){if(vi(o))return l;var d,f=function(){d()};Nr(s,"afterEnter",f),Nr(s,"enterCancelled",f),Nr(c,"delayLeave",(function(e){d=e}))}}return i}}},Os=Zt({tag:String,moveClass:String},Ts);function js(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Ls(e){e.data.newPos=e.elm.getBoundingClientRect()}function Ns(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete Os.mode;var Ds={Transition:$s,TransitionGroup:{props:Os,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=xi(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Cs(this),s=0;s-1?To[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:To[e]=/HTMLUnknownElement/.test(t.toString())},Zt(Ki.options.directives,xs),Zt(Ki.options.components,Ds),Ki.prototype.__patch__=gn?fs:tn,Ki.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=Hn),Ci(e,"beforeMount"),r=function(){e._update(e._render(),n)},new Pi(e,r,tn,{before:function(){e._isMounted&&!e._isDestroyed&&Ci(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Ci(e,"mounted")),e}(this,e=e&&gn?Co(e):void 0,t)},gn&&setTimeout((function(){cn.devtools&&On&&On.emit("init",Ki)}),0);var Is=/\{\{((?:.|\r?\n)+?)\}\}/g,Ms=/[-.*+?^${}()|[\]\/\\]/g,Ps=Vt((function(e){var t=e[0].replace(Ms,"\\$&"),n=e[1].replace(Ms,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")}));var Rs={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=ca(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=ua(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var Bs,Fs={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=ca(e,"style");n&&(e.staticStyle=JSON.stringify(ja(n)));var r=ua(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},qs=function(e){return(Bs=Bs||document.createElement("div")).innerHTML=e,Bs.textContent},Hs=Bt("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),zs=Bt("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),Us=Bt("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),Vs=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Ws=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Gs="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+dn.source+"]*",Ks="((?:"+Gs+"\\:)?"+Gs+")",Qs=new RegExp("^<"+Ks),Js=/^\s*(\/?)>/,Xs=new RegExp("^<\\/"+Ks+"[^>]*>"),Ys=/^]+>/i,Zs=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},il=/&(?:lt|gt|quot|amp|#39);/g,ol=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,al=Bt("pre,textarea",!0),sl=function(e,t){return e&&al(e)&&"\n"===t[0]};function ll(e,t){var n=t?ol:il;return e.replace(n,(function(e){return rl[e]}))}var ul,cl,dl,fl,pl,hl,vl,ml,gl=/^@|^v-on:/,yl=/^v-|^@|^:|^#/,bl=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,_l=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,wl=/^\(|\)$/g,xl=/^\[.*\]$/,Tl=/:(.*)$/,kl=/^:|^\.|^v-bind:/,Cl=/\.[^.\]]+(?=[^\]]*$)/g,Sl=/^v-slot(:|$)|^#/,Al=/[\r\n]/,El=/\s+/g,$l=Vt(qs);function Ol(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:Pl(t),rawAttrsMap:{},parent:n,children:[]}}function jl(e,t){ul=t.warn||ta,hl=t.isPreTag||nn,vl=t.mustUseProp||nn,ml=t.getTagNamespace||nn;t.isReservedTag;dl=na(t.modules,"transformNode"),fl=na(t.modules,"preTransformNode"),pl=na(t.modules,"postTransformNode"),cl=t.delimiters;var n,r,i=[],o=!1!==t.preserveWhitespace,a=t.whitespace,s=!1,l=!1;function u(e){if(c(e),s||e.processed||(e=Ll(e,t)),i.length||e===n||n.if&&(e.elseif||e.else)&&Dl(n,{exp:e.elseif,block:e}),r&&!e.forbidden)if(e.elseif||e.else)a=e,(u=function(e){for(var t=e.length;t--;){if(1===e[t].type)return e[t];e.pop()}}(r.children))&&u.if&&Dl(u,{exp:a.elseif,block:a});else{if(e.slotScope){var o=e.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[o]=e}r.children.push(e),e.parent=r}var a,u;e.children=e.children.filter((function(e){return!e.slotScope})),c(e),e.pre&&(s=!1),hl(e.tag)&&(l=!1);for(var d=0;d]*>)","i")),f=e.replace(d,(function(e,n,r){return u=r.length,tl(c)||"noscript"===c||(n=n.replace(//g,"$1").replace(//g,"$1")),sl(c,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""}));l+=e.length-f.length,e=f,S(c,l-u,l)}else{var p=e.indexOf("<");if(0===p){if(Zs.test(e)){var h=e.indexOf("--\x3e");if(h>=0){t.shouldKeepComment&&t.comment(e.substring(4,h),l,l+h+3),T(h+3);continue}}if(el.test(e)){var v=e.indexOf("]>");if(v>=0){T(v+2);continue}}var m=e.match(Ys);if(m){T(m[0].length);continue}var g=e.match(Xs);if(g){var y=l;T(g[0].length),S(g[1],y,l);continue}var b=k();if(b){C(b),sl(b.tagName,e)&&T(1);continue}}var _=void 0,w=void 0,x=void 0;if(p>=0){for(w=e.slice(p);!(Xs.test(w)||Qs.test(w)||Zs.test(w)||el.test(w)||(x=w.indexOf("<",1))<0);)p+=x,w=e.slice(p);_=e.substring(0,p)}p<0&&(_=e),_&&T(_.length),t.chars&&_&&t.chars(_,l-_.length,l)}if(e===n){t.chars&&t.chars(e);break}}function T(t){l+=t,e=e.substring(t)}function k(){var t=e.match(Qs);if(t){var n,r,i={tagName:t[1],attrs:[],start:l};for(T(t[0].length);!(n=e.match(Js))&&(r=e.match(Ws)||e.match(Vs));)r.start=l,T(r[0].length),r.end=l,i.attrs.push(r);if(n)return i.unarySlash=n[1],T(n[0].length),i.end=l,i}}function C(e){var n=e.tagName,l=e.unarySlash;o&&("p"===r&&Us(n)&&S(r),s(n)&&r===n&&S(n));for(var u=a(n)||!!l,c=e.attrs.length,d=new Array(c),f=0;f=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)t.end&&t.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,o):"p"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}S()}(e,{warn:ul,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,o,a,c,d){var f=r&&r.ns||ml(e);wn&&"svg"===f&&(o=function(e){for(var t=[],n=0;nl&&(s.push(o=e.slice(l,i)),a.push(JSON.stringify(o)));var u=Zo(r[1].trim());a.push("_s("+u+")"),s.push({"@binding":u}),l=i+r[0].length}return l-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),la(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+ha(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+ha(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+ha(t,"$$c")+"}",null,!0)}(e,r,i);else if("input"===o&&"radio"===a)!function(e,t,n){var r=n&&n.number,i=ua(e,"value")||"null";ra(e,"checked","_q("+t+","+(i=r?"_n("+i+")":i)+")"),la(e,"change",ha(t,i),null,!0)}(e,r,i);else if("input"===o||"textarea"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,l=!o&&"range"!==r,u=o?"change":"range"===r?"__r":"input",c="$event.target.value";s&&(c="$event.target.value.trim()");a&&(c="_n("+c+")");var d=ha(t,c);l&&(d="if($event.target.composing)return;"+d);ra(e,"value","("+t+")"),la(e,u,d,null,!0),(s||a)&&la(e,"blur","$forceUpdate()")}(e,r,i);else if(!cn.isReservedTag(o))return pa(e,r,i),!1;return!0},text:function(e,t){t.value&&ra(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&ra(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:Hs,mustUseProp:oo,canBeLeftOpenTag:zs,isReservedTag:wo,getTagNamespace:xo,staticKeys:function(e){return e.reduce((function(e,t){return e.concat(t.staticKeys||[])}),[]).join(",")}(ql)},Vl=Vt((function(e){return Bt("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))}));function Wl(e,t){e&&(Hl=Vl(t.staticKeys||""),zl=t.isReservedTag||nn,function e(t){if(t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||Ft(e.tag)||!zl(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(Hl)))}(t),1===t.type){if(!zl(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n|^function(?:\s+[\w$]+)?\s*\(/,Kl=/\([^)]*?\);*$/,Ql=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Jl={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Xl={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Yl=function(e){return"if("+e+")return null;"},Zl={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Yl("$event.target !== $event.currentTarget"),ctrl:Yl("!$event.ctrlKey"),shift:Yl("!$event.shiftKey"),alt:Yl("!$event.altKey"),meta:Yl("!$event.metaKey"),left:Yl("'button' in $event && $event.button !== 0"),middle:Yl("'button' in $event && $event.button !== 1"),right:Yl("'button' in $event && $event.button !== 2")};function eu(e,t){var n=t?"nativeOn:":"on:",r="",i="";for(var o in e){var a=tu(e[o]);e[o]&&e[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function tu(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map((function(e){return tu(e)})).join(",")+"]";var t=Ql.test(e.value),n=Gl.test(e.value),r=Ql.test(e.value.replace(Kl,""));if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(Zl[s])o+=Zl[s],Jl[s]&&a.push(s);else if("exact"===s){var l=e.modifiers;o+=Yl(["ctrl","shift","alt","meta"].filter((function(e){return!l[e]})).map((function(e){return"$event."+e+"Key"})).join("||"))}else a.push(s);return a.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(nu).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(t?"return "+e.value+"($event)":n?"return ("+e.value+")($event)":r?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(r?"return "+e.value:e.value)+"}"}function nu(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=Jl[e],r=Xl[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var ru={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:tn},iu=function(e){this.options=e,this.warn=e.warn||ta,this.transforms=na(e.modules,"transformCode"),this.dataGenFns=na(e.modules,"genData"),this.directives=Zt(Zt({},ru),e.directives);var t=e.isReservedTag||nn;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function ou(e,t){var n=new iu(t);return{render:"with(this){return "+(e?au(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function au(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return su(e,t);if(e.once&&!e.onceProcessed)return lu(e,t);if(e.for&&!e.forProcessed)return cu(e,t);if(e.if&&!e.ifProcessed)return uu(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=hu(e,t),i="_t("+n+(r?","+r:""),o=e.attrs||e.dynamicAttrs?gu((e.attrs||[]).concat(e.dynamicAttrs||[]).map((function(e){return{name:Gt(e.name),value:e.value,dynamic:e.dynamic}}))):null,a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:hu(t,n,!0);return"_c("+e+","+du(t,n)+(r?","+r:"")+")"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=du(e,t));var i=e.inlineTemplate?null:hu(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o>>0}(a):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];if(n&&1===n.type){var r=ou(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map((function(e){return"function(){"+e+"}"})).join(",")+"]}"}}(e,t);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+gu(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function fu(e){return 1===e.type&&("slot"===e.tag||e.children.some(fu))}function pu(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return uu(e,t,pu,"null");if(e.for&&!e.forProcessed)return cu(e,t,pu);var r="_empty_"===e.slotScope?"":String(e.slotScope),i="function("+r+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(hu(e,t)||"undefined")+":undefined":hu(e,t)||"undefined":au(e,t))+"}",o=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+o+"}"}function hu(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?t.maybeComponent(a)?",1":",0":"";return""+(r||au)(a,t)+s}var l=n?function(e,t){for(var n=0,r=0;r':'
',xu.innerHTML.indexOf(" ")>0}var Cu=!!gn&&ku(!1),Su=!!gn&&ku(!0),Au=Vt((function(e){var t=Co(e);return t&&t.innerHTML})),Eu=Ki.prototype.$mount;Ki.prototype.$mount=function(e,t){if((e=e&&Co(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=Au(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){var i=Tu(r,{outputSourceRange:!1,shouldDecodeNewlines:Cu,shouldDecodeNewlinesForHref:Su,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return Eu.call(this,e,t)},Ki.compile=Tu;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;dc.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")}};const Nu=new Ki({data:()=>({currentTab:"",sortKey:"release_date",sortOrder:"desc",title:"",image:"",type:"",link:"",head:null,body:null}),methods:{albumView:Uu.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(),dc.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"}],kt(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?[]:(w(t)||(t=null==t?[]:[t]),w(n=r?void 0:n)||(n=null==n?[]:[n]),St(e,t,n))):[];var e,t,n,r}},mounted(){r.on("show_artist",this.showArtist)}}).$mount("#artist_tab");window.vol={preview_max_volume:100};let Du=document.getElementById("preview-track"),Iu=!0;var Mu={init:function(){Du.volume=1,Du.addEventListener("canplay",(function(){Du.play(),Iu=!1,n(Du).animate({volume:vol.preview_max_volume/100},500)})),Du.addEventListener("timeupdate",(function(){Du.currentTime>Du.duration-1&&(n(Du).animate({volume:0},800),Iu=!0,n("a[playing] > .preview_controls").css({opacity:0}),n("*").removeAttr("playing"),n(".preview_controls").text("play_arrow"),n(".preview_playlist_controls").text("play_arrow"))}))},stopStackedTabsPreview:function(){n(".preview_playlist_controls").filter((function(){return n(this).attr("playing")})).length>0&&(n(Du).animate({volume:0},800),Iu=!0,n(".preview_playlist_controls").removeAttr("playing"),n(".preview_playlist_controls").text("play_arrow"))},previewMouseEnter:function(e){n(e.currentTarget).css({opacity:1})},previewMouseLeave:function(e){const{currentTarget:t}=e;(n(t).parent().attr("playing")&&Iu||!n(t).parent().attr("playing"))&&n(t).css({opacity:0},200)},playPausePreview:function(e){e.preventDefault();const{currentTarget:t}=event;var r="I"==t.tagName?n(t):n(t).children("i");n(t).attr("playing")?Du.paused?(Du.play(),Iu=!1,r.text("pause"),n(Du).animate({volume:vol.preview_max_volume/100},500)):(Iu=!0,r.text("play_arrow"),n(Du).animate({volume:0},250,"swing",()=>{Du.pause()})):(n("*").removeAttr("playing"),n(t).attr("playing",!0),n(".preview_controls").text("play_arrow"),n(".preview_playlist_controls").text("play_arrow"),n(".preview_controls").css({opacity:0}),r.text("pause"),r.css({opacity:1}),Iu=!1,n(Du).animate({volume:0},250,"swing",()=>{Du.pause(),n("#preview-track_source").prop("src",n(t).data("preview")),Du.load()}))}};var Pu={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 Ru=new Ki({data:()=>({title:"",metadata:"",release_date:"",label:"",explicit:!1,image:"",type:"",link:"",body:[]}),methods:{artistView:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),playPausePreview:Mu.playPausePreview,reset(){this.title="Loading...",this.image="",this.metadata="",this.label="",this.release_date="",this.explicit=!1,this.type="",this.body=[]},addToQueue(e){dc.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:Pu.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,kt(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`,kt(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`,kt(a)?this.body=null:this.body=a}},mounted(){r.on("show_album",this.showAlbum),r.on("show_playlist",this.showPlaylist),r.on("show_spotifyplaylist",this.showSpotifyPlaylist)}}).$mount("#tracklist_tab"),Bu=new Ki({data:()=>({title:"",subtitle:"",image:"",data:{},type:"",link:"",id:"0",countries:[]}),methods:{artistView:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),convertDuration:Pu.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(Pu.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(){r.on("analyze_track",this.showTrack),r.on("analyze_album",this.showAlbum),r.on("analyze_notSupported",this.notSupported)}}).$mount("#analyzer_tab"),Fu=(new Ki({data:()=>({playlists:[],albums:[]}),methods:{artistView:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),playlistView:Uu.bind(null,"playlist"),openSettings(){document.getElementById("main_settings_tablink").click()},addToQueue(e){dc.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"),r.on("init_home",this.initHome)}}).$mount("#home_tab"),new Ki({data:()=>({country:"",id:0,countries:[],chart:[]}),methods:{artistView:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),playPausePreview:Mu.playPausePreview,previewMouseEnter:Mu.previewMouseEnter,previewMouseLeave:Mu.previewMouseLeave,convertDuration:Pu.convertDuration,addToQueue(e){e.stopPropagation(),dc.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,r.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:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),playlistView:Uu.bind(null,"playlist"),spotifyPlaylistView:Uu.bind(null,"spotifyplaylist"),playPausePreview:Mu.playPausePreview,previewMouseEnter:Mu.previewMouseEnter,previewMouseLeave:Mu.previewMouseLeave,convertDuration:Pu.convertDuration,addToQueue(e){e.stopPropagation(),dc.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"),r.emit("update_userFavorites"),localStorage.getItem("spotifyUser")&&r.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.classList.remove("spin")},initFavorites(e){this.updated_userFavorites(e),document.getElementById("favorites_playlist_tab").click()}},mounted(){r.on("init_favorites",this.initFavorites),r.on("updated_userFavorites",this.updated_userFavorites),r.on("updated_userSpotifyPlaylists",this.updated_userSpotifyPlaylists),r.on("updated_userPlaylists",this.updated_userPlaylists),r.on("updated_userAlbums",this.updated_userAlbums),r.on("updated_userArtist",this.updated_userArtist),r.on("updated_userTracks",this.updated_userTracks)}}).$mount("#favorites_tab"),new Ki({data:()=>({title:"",errors:[]}),methods:{reset(){this.title="",this.errors=[]},showErrors(e){this.title=e.artist+" - "+e.title,this.errors=e.errors}}}).$mount("#errors_tab")),qu=new Ki({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"),a("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),r.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")&&r.emit("login",e,!0,this.accountNum)},changeAccount(){r.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(){r.emit("logout")},initSettings(e,t,n){this.loadSettings(e,t,n),a("Settings loaded!","settings")},updateSettings(e,t){this.loadSettings(e,t),a("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,r.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,r.on("init_settings",this.initSettings),r.on("updateSettings",this.updateSettings),r.on("accountChanged",this.accountChanged),r.on("familyAccounts",this.initAccounts)}}).$mount("#settings_tab"),Hu=new Ki({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:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),playlistView:Uu.bind(null,"playlist"),playPausePreview:Mu.playPausePreview,previewMouseEnter:Mu.previewMouseEnter,previewMouseLeave:Mu.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){dc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},numberWithDots:Pu.numberWithDots,convertDuration:Pu.convertDuration,search(e){r.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 Gu(e){const{target:t,target:{id:n}}=e;switch(n){case"search_all_tab":Qu(t,"search","main_search");break;case"search_track_tab":Qu(t,"search","track_search");break;case"search_album_tab":Qu(t,"search","album_search");break;case"search_artist_tab":Qu(t,"search","artist_search");break;case"search_playlist_tab":Qu(t,"search","playlist_search")}}function Ku(e){const{target:t,target:{id:n}}=e;switch(n){case"favorites_playlist_tab":Qu(t,"favorites","playlist_favorites");break;case"favorites_album_tab":Qu(t,"favorites","album_favorites");break;case"favorites_artist_tab":Qu(t,"favorites","artist_favorites");break;case"favorites_track_tab":Qu(t,"favorites","track_favorites")}}function Qu(e,t,n){var r,i,o;for(windows_stack=[],zu={},i=document.getElementsByClassName(t+"_tabcontent"),r=0;r{e.addEventListener("click",Xu)})},changeTab:Qu,showView:Uu,analyzeLink:function(e){Bu.reset(),r.emit("analyzeLink",e)},showErrors:Vu};let Zu,ec,tc,nc=parseInt(localStorage.getItem("downloadTabWidth"))||300,rc={},ic=[],oc=[];function ac(e){void 0===e?(Zu.style.width="",ec.style.width=""):(Zu.style.width=e+"px",ec.style.width=e+"px")}function sc(e){let t=window.innerWidth-e.pageX+2;t<250?t=250:t>500&&(t=500),nc=t,ac(t)}function lc(e,t=!1){rc[e.uuid]=e,e.downloaded+e.failed==e.size?-1==oc.indexOf(e.uuid)&&oc.push(e.uuid):-1==ic.indexOf(e.uuid)&&ic.push(e.uuid);let r=document.getElementById("download_"+e.uuid);if(void 0!==r&&null!=r||n(ec).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)&&n("#bar_"+e.uuid).removeClass("indeterminate").addClass("determinate"),n("#bar_"+e.uuid).css("width",e.progress+"%"),e.failed>=1&&0==n("#download_"+e.uuid+" .queue_failed").length&&n("#download_"+e.uuid+" .download_info_status").append(`(${e.failed}error_outline)`),e.downloaded+e.failed==e.size){let t=n("#download_"+e.uuid).find(".queue_icon");if(0==e.failed)t.text("done");else{let r=n("#download_"+e.uuid).find(".queue_failed_button");t.addClass("clickable"),r.addClass("clickable"),t.bind("click",{item:e},Vu),r.bind("click",{item:e},Vu),e.failed>=e.size?t.text("error"):t.text("warning")}}e.init||a(e.title+" added to queue","playlist_add_check")}function uc(e){const{target:t}=e;if(!t.matches(".queue_icon[data-uuid]"))return;let i=t.innerText,o=n(t).data("uuid");switch(i){case"remove":r.emit("removeFromQueue",o)}}function cc(e){e.preventDefault(),ac(),Zu.style.transition="all 250ms ease-in-out";let t=Zu.classList.toggle("tab_hidden");t||ac(nc),localStorage.setItem("downloadTabOpen",!t)}r.on("startDownload",(function(e){n("#bar_"+e).removeClass("indeterminate").addClass("determinate")})),r.on("init_downloadQueue",(function(e){const{queue:t,queueComplete:n,currentItem:r,queueList:i}=e;n.length&&n.forEach(e=>{i[e].init=!0,lc(i[e])}),r&&(i[r].init=!0,lc(i[r],!0)),t.forEach(e=>{i[e].init=!0,lc(i[e])})})),r.on("addedToQueue",lc),r.on("removedFromQueue",(function(e){let t=ic.indexOf(e);t>-1&&(ic.splice(t,1),n("#download_"+rc[e].uuid).remove(),delete rc[e])})),r.on("finishDownload",(function(e){if(ic.indexOf(e)>-1){a(rc[e].title+" finished downloading.","done"),n("#bar_"+e).css("width","100%");let t=n("#download_"+e).find(".queue_icon");if(0==rc[e].failed)t.text("done");else{let r=n("#download_"+e).find(".queue_failed_button");t.addClass("clickable"),r.addClass("clickable"),t.bind("click",{item:rc[e]},Vu),r.bind("click",{item:rc[e]},Vu),rc[e].failed>=rc[e].size?t.text("error"):t.text("warning")}let r=ic.indexOf(e);r>-1&&(ic.splice(r,1),oc.push(e)),ic.length<=0&&a("All downloads completed!","done_all")}})),r.on("removedAllDownloads",(function(e){if(oc=[],""==e)ic=[],rc={},n(ec).html("");else{ic=[e];let t=rc[e];rc={},rc[e]=t,n(".download_object").each((function(t){n(this).attr("id")!="download_"+e&&n(this).remove()}))}})),r.on("removedFinishedDownloads",(function(){oc.forEach(e=>{n("#download_"+e).remove()}),oc=[]})),r.on("updateQueue",(function(e){const{uuid:t,downloaded:r,failed:i,progress:o}=e;t&&ic.indexOf(t)>-1&&(r&&(rc[t].downloaded++,n("#download_"+t+" .queue_downloaded").text(rc[t].downloaded+rc[t].failed)),i&&(rc[t].failed++,n("#download_"+t+" .queue_downloaded").text(rc[t].downloaded+rc[t].failed),1==rc[t].failed&&0==n("#download_"+t+" .queue_failed").length?n("#download_"+t+" .download_info_status").append('(1 error_outline)'):n("#download_"+t+" .queue_failed").text(rc[t].failed),rc[t].errors.push({message:e.error,data:e.data})),o&&(rc[t].progress=o,n("#bar_"+t).css("width",o+"%")))}));var dc={init:function(){Zu=document.getElementById("download_tab_container"),ec=document.getElementById("download_list"),tc=document.getElementById("download_tab_drag_handler"),"true"===localStorage.getItem("slimDownloads")&&ec.classList.add("slim"),"true"===localStorage.getItem("downloadTabOpen")&&(Zu.classList.remove("tab_hidden"),ac(nc)),ec.addEventListener("click",uc),document.getElementById("toggle_download_tab").addEventListener("click",cc),document.getElementById("clean_queue").addEventListener("click",()=>{r.emit("removeFinishedDownloads")}),document.getElementById("cancel_queue").addEventListener("click",()=>{r.emit("cancelAllDownloads")}),document.getElementById("open_downloads_folder").addEventListener("click",()=>{window.clientMode&&r.emit("openDownloadsFolder")}),tc.addEventListener("mousedown",e=>{e.preventDefault(),document.addEventListener("mousemove",sc)}),document.addEventListener("mouseup",()=>{document.removeEventListener("mousemove",sc)}),Zu.addEventListener("transitionend",()=>{Zu.style.transition=""}),window.addEventListener("beforeunload",()=>{localStorage.setItem("downloadTabWidth",nc)})},sendAddToQueue:function(e,t=null){if(-1!==e.indexOf(";")){e.split(";").forEach(e=>{r.emit("addToQueue",{url:e,bitrate:t})})}else""!=e&&r.emit("addToQueue",{url:e,bitrate:t})},addToQueue:lc};function fc(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)&&Hu.scrolledSearch(search_selected.split("_")[0])}function pc(e){if(13!==e.keyCode)return;let t=this.value;if(Pu.isValidURL(t))e.ctrlKey?Lu.open(t):"analyzer_tab"==window.main_selected?Yu.analyzeLink(t):dc.sendAddToQueue(t);else{if(""===t)return;t!==Hu.results.query||"search_tab"==main_selected?(document.getElementById("search_tab_content").style.display="none",r.emit("mainSearch",{term:t})):(document.getElementById("search_tab_content").style.display="block",document.getElementById("main_search_tablink").click())}}var hc={linkListeners:function(){document.getElementById("content").addEventListener("scroll",Pu.debounce(fc,100)),document.getElementById("searchbar").addEventListener("keyup",pc)}};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)}}(),dc.init(),Lu.init(),Yu.init(),hc.linkListeners(),Mu.init()})),window.addEventListener("pywebviewready",(function(){window.clientMode=!0,document.querySelector("#open_downloads_folder").classList.remove("hide")})),r.on("message",(function(e){console.log(e)})),r.on("logging_in",(function(){a("Logging in","loading",!1,"login-toast")})),r.on("init_autologin",(function(){let e=localStorage.getItem("arl"),t=localStorage.getItem("accountNum");e&&(e=e.trim(),0!=t?r.emit("login",e,!0,t):r.emit("login",e))})),r.on("logged_in",(function(e){switch(e.status){case 1:case 3:a("Logged in","done",!0,"login-toast"),e.arl&&(localStorage.setItem("arl",e.arl),n("#login_input_arl").val(e.arl)),n("#open_login_prompt").hide(),e.user&&(n("#settings_username").text(e.user.name),n("#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:a("Already logged in","done",!0,"login-toast"),e.user&&(n("#settings_username").text(e.user.name),n("#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:a("Couldn't log in","close",!0,"login-toast"),localStorage.removeItem("arl"),n("#login_input_arl").val(""),n("#open_login_prompt").show(),document.getElementById("logged_in_info").classList.add("hide"),n("#settings_username").text("Not Logged"),n("#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")}})),r.on("logged_out",(function(){a("Logged out","done",!0,"login-toast"),localStorage.removeItem("arl"),n("#login_input_arl").val(""),n("#open_login_prompt").show(),document.getElementById("logged_in_info").classList.add("hide"),n("#settings_username").text("Not Logged"),n("#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")})),r.on("cancellingCurrentItem",(function(e){a("Cancelling current item.","loading",!1,"cancelling_"+e)})),r.on("currentItemCancelled",(function(e){a("Current item cancelled.","done",!0,"cancelling_"+e)})),r.on("startAddingArtist",(function(e){a(`Adding ${e.name} albums to queue`,"loading",!1,"artist_"+e.id)})),r.on("finishAddingArtist",(function(e){a(`Added ${e.name} albums to queue`,"done",!0,"artist_"+e.id)})),r.on("startConvertingSpotifyPlaylist",(function(e){a("Converting spotify tracks to deezer tracks","loading",!1,"spotifyplaylist_"+e)})),r.on("finishConvertingSpotifyPlaylist",(function(e){a("Spotify playlist converted","done",!0,"spotifyplaylist_"+e)})),r.on("errorMessage",(function(e){a(e,"error")})),r.on("alreadyInQueue",(function(e){a(e.title+" is already in queue!","playlist_add_check")})); +var At=Object.freeze({});function Et(e){return null==e}function $t(e){return null!=e}function Ot(e){return!0===e}function jt(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function Lt(e){return null!==e&&"object"==typeof e}var Nt=Object.prototype.toString;function Dt(e){return"[object Object]"===Nt.call(e)}function It(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function Mt(e){return $t(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function Pt(e){return null==e?"":Array.isArray(e)||Dt(e)&&e.toString===Nt?JSON.stringify(e,null,2):String(e)}function Rt(e){var t=parseFloat(e);return isNaN(t)?e:t}function Bt(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i-1)return e.splice(n,1)}}var zt=Object.prototype.hasOwnProperty;function Ut(e,t){return zt.call(e,t)}function Vt(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var Wt=/-(\w)/g,Gt=Vt((function(e){return e.replace(Wt,(function(e,t){return t?t.toUpperCase():""}))})),Kt=Vt((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),Qt=/\B([A-Z])/g,Jt=Vt((function(e){return e.replace(Qt,"-$1").toLowerCase()}));var Xt=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function Yt(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function Zt(e,t){for(var n in t)e[n]=t[n];return e}function en(e){for(var t={},n=0;n0,Tn=_n&&_n.indexOf("edge/")>0,kn=(_n&&_n.indexOf("android"),_n&&/iphone|ipad|ipod|ios/.test(_n)||"ios"===bn),Cn=(_n&&/chrome\/\d+/.test(_n),_n&&/phantomjs/.test(_n),_n&&_n.match(/firefox\/(\d+)/)),Sn={}.watch,An=!1;if(gn)try{var En={};Object.defineProperty(En,"passive",{get:function(){An=!0}}),window.addEventListener("test-passive",null,En)}catch(e){}var $n=function(){return void 0===vn&&(vn=!gn&&!yn&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),vn},On=gn&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function jn(e){return"function"==typeof e&&/native code/.test(e.toString())}var Ln,Nn="undefined"!=typeof Symbol&&jn(Symbol)&&"undefined"!=typeof Reflect&&jn(Reflect.ownKeys);Ln="undefined"!=typeof Set&&jn(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var Dn=tn,In=0,Mn=function(){this.id=In++,this.subs=[]};Mn.prototype.addSub=function(e){this.subs.push(e)},Mn.prototype.removeSub=function(e){Ht(this.subs,e)},Mn.prototype.depend=function(){Mn.target&&Mn.target.addDep(this)},Mn.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t-1)if(o&&!Ut(i,"default"))a=!1;else if(""===a||a===Jt(e)){var l=pr(String,i.type);(l<0||s0&&(Mr((i=e(i,(n||"")+"_"+r))[0])&&Mr(a)&&(s[o]=zn(a.text+i[0].text),i.shift()),s.push.apply(s,i)):jt(i)?Mr(a)?s[o]=zn(a.text+i):""!==i&&s.push(zn(i)):Mr(i)&&Mr(a)?s[o]=zn(a.text+i.text):(Ot(t._isVList)&&$t(i.tag)&&Et(i.key)&&$t(n)&&(i.key="__vlist"+n+"_"+r+"__"),s.push(i)));return s}(e):void 0}function Mr(e){return $t(e)&&$t(e.text)&&!1===e.isComment}function Pr(e,t){if(e){for(var n=Object.create(null),r=Nn?Reflect.ownKeys(e):Object.keys(e),i=0;i0,o=e?!!e.$stable:!i,a=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(o&&n&&n!==At&&a===n.$key&&!i&&!n.$hasNormal)return n;for(var s in r={},e)e[s]&&"$"!==s[0]&&(r[s]=qr(t,s,e[s]))}else r={};for(var l in t)l in r||(r[l]=Hr(t,l));return e&&Object.isExtensible(e)&&(e._normalized=r),pn(r,"$stable",o),pn(r,"$key",a),pn(r,"$hasNormal",i),r}function qr(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:Ir(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function Hr(e,t){return function(){return e[t]}}function zr(e,t){var n,r,i,o,a;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),r=0,i=e.length;rdocument.createEvent("Event").timeStamp&&(Ni=function(){return Di.now()})}function Ii(){var e,t;for(Li=Ni(),Oi=!0,Si.sort((function(e,t){return e.id-t.id})),ji=0;jiji&&Si[n].id>e.id;)n--;Si.splice(n+1,0,e)}else Si.push(e);$i||($i=!0,Ar(Ii))}}(this)},Pi.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||Lt(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){hr(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},Pi.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Pi.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},Pi.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||Ht(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Ri={enumerable:!0,configurable:!0,get:tn,set:tn};function Bi(e,t,n){Ri.get=function(){return this[t][n]},Ri.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Ri)}function Fi(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&Qn(!1);var o=function(o){i.push(o);var a=cr(o,t,n,e);Yn(r,o,a),o in e||Bi(e,"_props",o)};for(var a in t)o(a);Qn(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?tn:Xt(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;Dt(t=e._data="function"==typeof t?function(e,t){Rn();try{return e.call(t,t)}catch(e){return hr(e,t,"data()"),{}}finally{Bn()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&Ut(r,o)||fn(o)||Bi(e,"_data",o)}Xn(t,!0)}(e):Xn(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=$n();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new Pi(e,a||tn,tn,qi)),i in e||Hi(e,i,o)}}(e,t.computed),t.watch&&t.watch!==Sn&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(n=e,"[object RegExp]"===Nt.call(n)&&e.test(t));var n}function Yi(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=Ji(a.componentOptions);s&&!t(s)&&Zi(n,o,r,i)}}}function Zi(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,Ht(n,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=Wi++,t._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=lr(Gi(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&_i(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,r=n&&n.context;e.$slots=Rr(t._renderChildren,r),e.$scopedSlots=At,e._c=function(t,n,r,i){return di(e,t,n,r,i,!1)},e.$createElement=function(t,n,r,i){return di(e,t,n,r,i,!0)};var i=n&&n.data;Yn(e,"$attrs",i&&i.attrs||At,null,!0),Yn(e,"$listeners",t._parentListeners||At,null,!0)}(t),Ci(t,"beforeCreate"),function(e){var t=Pr(e.$options.inject,e);t&&(Qn(!1),Object.keys(t).forEach((function(n){Yn(e,n,t[n])})),Qn(!0))}(t),Fi(t),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(t),Ci(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}(Ki),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=Zn,e.prototype.$delete=er,e.prototype.$watch=function(e,t,n){if(Dt(t))return Vi(this,e,t,n);(n=n||{}).user=!0;var r=new Pi(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){hr(e,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(Ki),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i1?Yt(n):n;for(var r=Yt(arguments,1),i='event handler for "'+e+'"',o=0,a=n.length;oparseInt(this.max)&&Zi(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return cn}};Object.defineProperty(e,"config",t),e.util={warn:Dn,extend:Zt,mergeOptions:lr,defineReactive:Yn},e.set=Zn,e.delete=er,e.nextTick=Ar,e.observable=function(e){return Xn(e),e},e.options=Object.create(null),ln.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,Zt(e.options.components,to),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=Yt(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=lr(this.options,e),this}}(e),Qi(e),function(e){ln.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&Dt(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)}(Ki),Object.defineProperty(Ki.prototype,"$isServer",{get:$n}),Object.defineProperty(Ki.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Ki,"FunctionalRenderContext",{value:ii}),Ki.version="2.6.11";var no=Bt("style,class"),ro=Bt("input,textarea,option,select,progress"),oo=function(e,t,n){return"value"===n&&ro(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},ao=Bt("contenteditable,draggable,spellcheck"),so=Bt("events,caret,typing,plaintext-only"),lo=Bt("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),uo="http://www.w3.org/1999/xlink",co=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},fo=function(e){return co(e)?e.slice(6,e.length):""},po=function(e){return null==e||!1===e};function ho(e){for(var t=e.data,n=e,r=e;$t(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=vo(r.data,t));for(;$t(n=n.parent);)n&&n.data&&(t=vo(t,n.data));return function(e,t){if($t(e)||$t(t))return mo(e,go(t));return""}(t.staticClass,t.class)}function vo(e,t){return{staticClass:mo(e.staticClass,t.staticClass),class:$t(e.class)?[e.class,t.class]:t.class}}function mo(e,t){return e?t?e+" "+t:e:t||""}function go(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,i=e.length;r-1?Ho(e,t,n):lo(t)?po(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):ao(t)?e.setAttribute(t,function(e,t){return po(t)||"false"===t?"false":"contenteditable"===e&&so(t)?t:"true"}(t,n)):co(t)?po(n)?e.removeAttributeNS(uo,fo(t)):e.setAttributeNS(uo,t,n):Ho(e,t,n)}function Ho(e,t,n){if(po(n))e.removeAttribute(t);else{if(wn&&!xn&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var zo={create:Fo,update:Fo};function Uo(e,t){var n=t.elm,r=t.data,i=e.data;if(!(Et(r.staticClass)&&Et(r.class)&&(Et(i)||Et(i.staticClass)&&Et(i.class)))){var o=ho(t),a=n._transitionClasses;$t(a)&&(o=mo(o,go(a))),o!==n._prevClass&&(n.setAttribute("class",o),n._prevClass=o)}}var Vo,Wo,Go,Ko,Qo,Jo,Xo={create:Uo,update:Uo},Yo=/[\w).+\-_$\]]/;function Zo(e){var t,n,r,i,o,a=!1,s=!1,l=!1,u=!1,c=0,d=0,f=0,p=0;for(r=0;r=0&&" "===(v=e.charAt(h));h--);v&&Yo.test(v)||(u=!0)}}else void 0===i?(p=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(p,r).trim()),p=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==p&&m(),o)for(r=0;r-1?{exp:e.slice(0,Ko),key:'"'+e.slice(Ko+1)+'"'}:{exp:e,key:null};Wo=e,Ko=Qo=Jo=0;for(;!ma();)ga(Go=va())?ba(Go):91===Go&&ya(Go);return{exp:e.slice(0,Qo),key:e.slice(Qo+1,Jo)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function va(){return Wo.charCodeAt(++Ko)}function ma(){return Ko>=Vo}function ga(e){return 34===e||39===e}function ya(e){var t=1;for(Qo=Ko;!ma();)if(ga(e=va()))ba(e);else if(91===e&&t++,93===e&&t--,0===t){Jo=Ko;break}}function ba(e){for(var t=e;!ma()&&(e=va())!==t;);}var _a;function wa(e,t,n){var r=_a;return function i(){var o=t.apply(null,arguments);null!==o&&ka(e,i,n,r)}}var xa=br&&!(Cn&&Number(Cn[1])<=53);function Ta(e,t,n,r){if(xa){var i=Li,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}_a.addEventListener(e,t,An?{capture:n,passive:r}:n)}function ka(e,t,n,r){(r||_a).removeEventListener(e,t._wrapper||t,n)}function Ca(e,t){if(!Et(e.data.on)||!Et(t.data.on)){var n=t.data.on||{},r=e.data.on||{};_a=t.elm,function(e){if($t(e.__r)){var t=wn?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}$t(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),Lr(n,r,Ta,ka,wa,t.context),_a=void 0}}var Sa,Aa={create:Ca,update:Ca};function Ea(e,t){if(!Et(e.data.domProps)||!Et(t.data.domProps)){var n,r,i=t.elm,o=e.data.domProps||{},a=t.data.domProps||{};for(n in $t(a.__ob__)&&(a=t.data.domProps=Zt({},a)),o)n in a||(i[n]="");for(n in a){if(r=a[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===o[n])continue;1===i.childNodes.length&&i.removeChild(i.childNodes[0])}if("value"===n&&"PROGRESS"!==i.tagName){i._value=r;var s=Et(r)?"":String(r);$a(i,s)&&(i.value=s)}else if("innerHTML"===n&&_o(i.tagName)&&Et(i.innerHTML)){(Sa=Sa||document.createElement("div")).innerHTML=""+r+"";for(var l=Sa.firstChild;i.firstChild;)i.removeChild(i.firstChild);for(;l.firstChild;)i.appendChild(l.firstChild)}else if(r!==o[n])try{i[n]=r}catch(e){}}}}function $a(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if($t(r)){if(r.number)return Rt(n)!==Rt(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var Oa={create:Ea,update:Ea},ja=Vt((function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}})),t}));function La(e){var t=Na(e.style);return e.staticStyle?Zt(e.staticStyle,t):t}function Na(e){return Array.isArray(e)?en(e):"string"==typeof e?ja(e):e}var Da,Ia=/^--/,Ma=/\s*!important$/,Pa=function(e,t,n){if(Ia.test(t))e.style.setProperty(t,n);else if(Ma.test(n))e.style.setProperty(Jt(t),n.replace(Ma,""),"important");else{var r=Ba(t);if(Array.isArray(n))for(var i=0,o=n.length;i-1?t.split(Ha).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function Ua(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(Ha).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function Va(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&Zt(t,Wa(e.name||"v")),Zt(t,e),t}return"string"==typeof e?Wa(e):void 0}}var Wa=Vt((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),Ga=gn&&!xn,Ka="transition",Qa="transitionend",Ja="animation",Xa="animationend";Ga&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ka="WebkitTransition",Qa="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ja="WebkitAnimation",Xa="webkitAnimationEnd"));var Ya=gn?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Za(e){Ya((function(){Ya(e)}))}function es(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),za(e,t))}function ts(e,t){e._transitionClasses&&Ht(e._transitionClasses,t),Ua(e,t)}function ns(e,t,n){var r=is(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s="transition"===i?Qa:Xa,l=0,u=function(){e.removeEventListener(s,c),n()},c=function(t){t.target===e&&++l>=a&&u()};setTimeout((function(){l0&&(n="transition",c=a,d=o.length):"animation"===t?u>0&&(n="animation",c=u,d=l.length):d=(n=(c=Math.max(a,u))>0?a>u?"transition":"animation":null)?"transition"===n?o.length:l.length:0,{type:n,timeout:c,propCount:d,hasTransform:"transition"===n&&rs.test(r[Ka+"Property"])}}function os(e,t){for(;e.length1}function ds(e,t){!0!==t.data.show&&ss(t)}var fs=function(e){var t,n,r={},i=e.modules,o=e.nodeOps;for(t=0;tf?h(e,Et(n[g+1])?null:n[g+1].elm,n,d,g,r):d>g&&m(t,c,f)}(u,p,v,n,l):$t(v)?($t(e.text)&&o.setTextContent(u,""),h(u,null,v,0,v.length-1,n)):$t(p)?m(p,0,p.length-1):$t(e.text)&&o.setTextContent(u,""):e.text!==t.text&&o.setTextContent(u,t.text),$t(f)&&$t(c=f.hook)&&$t(c=c.postpatch)&&c(e,t)}}}function _(e,t,n){if(Ot(n)&&$t(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r-1,a.selected!==o&&(a.selected=o);else if(on(gs(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function ms(e,t){return t.every((function(t){return!on(t,e)}))}function gs(e){return"_value"in e?e._value:e.value}function ys(e){e.target.composing=!0}function bs(e){e.target.composing&&(e.target.composing=!1,_s(e.target,"input"))}function _s(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function ws(e){return!e.componentInstance||e.data&&e.data.transition?e:ws(e.componentInstance._vnode)}var xs={model:ps,show:{bind:function(e,t,n){var r=t.value,i=(n=ws(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,ss(n,(function(){e.style.display=o}))):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=ws(n)).data&&n.data.transition?(n.data.show=!0,r?ss(n,(function(){e.style.display=e.__vOriginalDisplay})):ls(n,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},Ts={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function ks(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?ks(mi(t.children)):e}function Cs(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[Gt(o)]=i[o];return t}function Ss(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var As=function(e){return e.tag||vi(e)},Es=function(e){return"show"===e.name},$s={name:"transition",props:Ts,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(As)).length){var r=this.mode,i=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return i;var o=ks(i);if(!o)return i;if(this._leaving)return Ss(e,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:jt(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var s=(o.data||(o.data={})).transition=Cs(this),l=this._vnode,u=ks(l);if(o.data.directives&&o.data.directives.some(Es)&&(o.data.show=!0),u&&u.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(o,u)&&!vi(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var c=u.data.transition=Zt({},s);if("out-in"===r)return this._leaving=!0,Nr(c,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),Ss(e,i);if("in-out"===r){if(vi(o))return l;var d,f=function(){d()};Nr(s,"afterEnter",f),Nr(s,"enterCancelled",f),Nr(c,"delayLeave",(function(e){d=e}))}}return i}}},Os=Zt({tag:String,moveClass:String},Ts);function js(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Ls(e){e.data.newPos=e.elm.getBoundingClientRect()}function Ns(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete Os.mode;var Ds={Transition:$s,TransitionGroup:{props:Os,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=xi(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Cs(this),s=0;s-1?To[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:To[e]=/HTMLUnknownElement/.test(t.toString())},Zt(Ki.options.directives,xs),Zt(Ki.options.components,Ds),Ki.prototype.__patch__=gn?fs:tn,Ki.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=Hn),Ci(e,"beforeMount"),r=function(){e._update(e._render(),n)},new Pi(e,r,tn,{before:function(){e._isMounted&&!e._isDestroyed&&Ci(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Ci(e,"mounted")),e}(this,e=e&&gn?Co(e):void 0,t)},gn&&setTimeout((function(){cn.devtools&&On&&On.emit("init",Ki)}),0);var Is=/\{\{((?:.|\r?\n)+?)\}\}/g,Ms=/[-.*+?^${}()|[\]\/\\]/g,Ps=Vt((function(e){var t=e[0].replace(Ms,"\\$&"),n=e[1].replace(Ms,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")}));var Rs={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=ca(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=ua(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var Bs,Fs={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=ca(e,"style");n&&(e.staticStyle=JSON.stringify(ja(n)));var r=ua(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},qs=function(e){return(Bs=Bs||document.createElement("div")).innerHTML=e,Bs.textContent},Hs=Bt("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),zs=Bt("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),Us=Bt("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),Vs=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Ws=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Gs="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+dn.source+"]*",Ks="((?:"+Gs+"\\:)?"+Gs+")",Qs=new RegExp("^<"+Ks),Js=/^\s*(\/?)>/,Xs=new RegExp("^<\\/"+Ks+"[^>]*>"),Ys=/^]+>/i,Zs=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},il=/&(?:lt|gt|quot|amp|#39);/g,ol=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,al=Bt("pre,textarea",!0),sl=function(e,t){return e&&al(e)&&"\n"===t[0]};function ll(e,t){var n=t?ol:il;return e.replace(n,(function(e){return rl[e]}))}var ul,cl,dl,fl,pl,hl,vl,ml,gl=/^@|^v-on:/,yl=/^v-|^@|^:|^#/,bl=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,_l=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,wl=/^\(|\)$/g,xl=/^\[.*\]$/,Tl=/:(.*)$/,kl=/^:|^\.|^v-bind:/,Cl=/\.[^.\]]+(?=[^\]]*$)/g,Sl=/^v-slot(:|$)|^#/,Al=/[\r\n]/,El=/\s+/g,$l=Vt(qs);function Ol(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:Pl(t),rawAttrsMap:{},parent:n,children:[]}}function jl(e,t){ul=t.warn||ta,hl=t.isPreTag||nn,vl=t.mustUseProp||nn,ml=t.getTagNamespace||nn;t.isReservedTag;dl=na(t.modules,"transformNode"),fl=na(t.modules,"preTransformNode"),pl=na(t.modules,"postTransformNode"),cl=t.delimiters;var n,r,i=[],o=!1!==t.preserveWhitespace,a=t.whitespace,s=!1,l=!1;function u(e){if(c(e),s||e.processed||(e=Ll(e,t)),i.length||e===n||n.if&&(e.elseif||e.else)&&Dl(n,{exp:e.elseif,block:e}),r&&!e.forbidden)if(e.elseif||e.else)a=e,(u=function(e){for(var t=e.length;t--;){if(1===e[t].type)return e[t];e.pop()}}(r.children))&&u.if&&Dl(u,{exp:a.elseif,block:a});else{if(e.slotScope){var o=e.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[o]=e}r.children.push(e),e.parent=r}var a,u;e.children=e.children.filter((function(e){return!e.slotScope})),c(e),e.pre&&(s=!1),hl(e.tag)&&(l=!1);for(var d=0;d]*>)","i")),f=e.replace(d,(function(e,n,r){return u=r.length,tl(c)||"noscript"===c||(n=n.replace(//g,"$1").replace(//g,"$1")),sl(c,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""}));l+=e.length-f.length,e=f,S(c,l-u,l)}else{var p=e.indexOf("<");if(0===p){if(Zs.test(e)){var h=e.indexOf("--\x3e");if(h>=0){t.shouldKeepComment&&t.comment(e.substring(4,h),l,l+h+3),T(h+3);continue}}if(el.test(e)){var v=e.indexOf("]>");if(v>=0){T(v+2);continue}}var m=e.match(Ys);if(m){T(m[0].length);continue}var g=e.match(Xs);if(g){var y=l;T(g[0].length),S(g[1],y,l);continue}var b=k();if(b){C(b),sl(b.tagName,e)&&T(1);continue}}var _=void 0,w=void 0,x=void 0;if(p>=0){for(w=e.slice(p);!(Xs.test(w)||Qs.test(w)||Zs.test(w)||el.test(w)||(x=w.indexOf("<",1))<0);)p+=x,w=e.slice(p);_=e.substring(0,p)}p<0&&(_=e),_&&T(_.length),t.chars&&_&&t.chars(_,l-_.length,l)}if(e===n){t.chars&&t.chars(e);break}}function T(t){l+=t,e=e.substring(t)}function k(){var t=e.match(Qs);if(t){var n,r,i={tagName:t[1],attrs:[],start:l};for(T(t[0].length);!(n=e.match(Js))&&(r=e.match(Ws)||e.match(Vs));)r.start=l,T(r[0].length),r.end=l,i.attrs.push(r);if(n)return i.unarySlash=n[1],T(n[0].length),i.end=l,i}}function C(e){var n=e.tagName,l=e.unarySlash;o&&("p"===r&&Us(n)&&S(r),s(n)&&r===n&&S(n));for(var u=a(n)||!!l,c=e.attrs.length,d=new Array(c),f=0;f=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)t.end&&t.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,o):"p"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}S()}(e,{warn:ul,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,o,a,c,d){var f=r&&r.ns||ml(e);wn&&"svg"===f&&(o=function(e){for(var t=[],n=0;nl&&(s.push(o=e.slice(l,i)),a.push(JSON.stringify(o)));var u=Zo(r[1].trim());a.push("_s("+u+")"),s.push({"@binding":u}),l=i+r[0].length}return l-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),la(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+ha(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+ha(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+ha(t,"$$c")+"}",null,!0)}(e,r,i);else if("input"===o&&"radio"===a)!function(e,t,n){var r=n&&n.number,i=ua(e,"value")||"null";ra(e,"checked","_q("+t+","+(i=r?"_n("+i+")":i)+")"),la(e,"change",ha(t,i),null,!0)}(e,r,i);else if("input"===o||"textarea"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,l=!o&&"range"!==r,u=o?"change":"range"===r?"__r":"input",c="$event.target.value";s&&(c="$event.target.value.trim()");a&&(c="_n("+c+")");var d=ha(t,c);l&&(d="if($event.target.composing)return;"+d);ra(e,"value","("+t+")"),la(e,u,d,null,!0),(s||a)&&la(e,"blur","$forceUpdate()")}(e,r,i);else if(!cn.isReservedTag(o))return pa(e,r,i),!1;return!0},text:function(e,t){t.value&&ra(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&ra(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:Hs,mustUseProp:oo,canBeLeftOpenTag:zs,isReservedTag:wo,getTagNamespace:xo,staticKeys:function(e){return e.reduce((function(e,t){return e.concat(t.staticKeys||[])}),[]).join(",")}(ql)},Vl=Vt((function(e){return Bt("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))}));function Wl(e,t){e&&(Hl=Vl(t.staticKeys||""),zl=t.isReservedTag||nn,function e(t){if(t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||Ft(e.tag)||!zl(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(Hl)))}(t),1===t.type){if(!zl(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n|^function(?:\s+[\w$]+)?\s*\(/,Kl=/\([^)]*?\);*$/,Ql=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Jl={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Xl={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Yl=function(e){return"if("+e+")return null;"},Zl={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Yl("$event.target !== $event.currentTarget"),ctrl:Yl("!$event.ctrlKey"),shift:Yl("!$event.shiftKey"),alt:Yl("!$event.altKey"),meta:Yl("!$event.metaKey"),left:Yl("'button' in $event && $event.button !== 0"),middle:Yl("'button' in $event && $event.button !== 1"),right:Yl("'button' in $event && $event.button !== 2")};function eu(e,t){var n=t?"nativeOn:":"on:",r="",i="";for(var o in e){var a=tu(e[o]);e[o]&&e[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function tu(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map((function(e){return tu(e)})).join(",")+"]";var t=Ql.test(e.value),n=Gl.test(e.value),r=Ql.test(e.value.replace(Kl,""));if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(Zl[s])o+=Zl[s],Jl[s]&&a.push(s);else if("exact"===s){var l=e.modifiers;o+=Yl(["ctrl","shift","alt","meta"].filter((function(e){return!l[e]})).map((function(e){return"$event."+e+"Key"})).join("||"))}else a.push(s);return a.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(nu).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(t?"return "+e.value+"($event)":n?"return ("+e.value+")($event)":r?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(r?"return "+e.value:e.value)+"}"}function nu(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=Jl[e],r=Xl[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var ru={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:tn},iu=function(e){this.options=e,this.warn=e.warn||ta,this.transforms=na(e.modules,"transformCode"),this.dataGenFns=na(e.modules,"genData"),this.directives=Zt(Zt({},ru),e.directives);var t=e.isReservedTag||nn;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function ou(e,t){var n=new iu(t);return{render:"with(this){return "+(e?au(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function au(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return su(e,t);if(e.once&&!e.onceProcessed)return lu(e,t);if(e.for&&!e.forProcessed)return cu(e,t);if(e.if&&!e.ifProcessed)return uu(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=hu(e,t),i="_t("+n+(r?","+r:""),o=e.attrs||e.dynamicAttrs?gu((e.attrs||[]).concat(e.dynamicAttrs||[]).map((function(e){return{name:Gt(e.name),value:e.value,dynamic:e.dynamic}}))):null,a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:hu(t,n,!0);return"_c("+e+","+du(t,n)+(r?","+r:"")+")"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=du(e,t));var i=e.inlineTemplate?null:hu(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o>>0}(a):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];if(n&&1===n.type){var r=ou(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map((function(e){return"function(){"+e+"}"})).join(",")+"]}"}}(e,t);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+gu(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function fu(e){return 1===e.type&&("slot"===e.tag||e.children.some(fu))}function pu(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return uu(e,t,pu,"null");if(e.for&&!e.forProcessed)return cu(e,t,pu);var r="_empty_"===e.slotScope?"":String(e.slotScope),i="function("+r+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(hu(e,t)||"undefined")+":undefined":hu(e,t)||"undefined":au(e,t))+"}",o=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+o+"}"}function hu(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?t.maybeComponent(a)?",1":",0":"";return""+(r||au)(a,t)+s}var l=n?function(e,t){for(var n=0,r=0;r':'
',xu.innerHTML.indexOf(" ")>0}var Cu=!!gn&&ku(!1),Su=!!gn&&ku(!0),Au=Vt((function(e){var t=Co(e);return t&&t.innerHTML})),Eu=Ki.prototype.$mount;Ki.prototype.$mount=function(e,t){if((e=e&&Co(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=Au(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){var i=Tu(r,{outputSourceRange:!1,shouldDecodeNewlines:Cu,shouldDecodeNewlinesForHref:Su,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return Eu.call(this,e,t)},Ki.compile=Tu;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;dc.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")}};const Nu=new Ki({data:()=>({currentTab:"",sortKey:"release_date",sortOrder:"desc",title:"",image:"",type:"",link:"",head:null,body:null}),methods:{albumView:Uu.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(),dc.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"}],kt(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?[]:(w(t)||(t=null==t?[]:[t]),w(n=r?void 0:n)||(n=null==n?[]:[n]),St(e,t,n))):[];var e,t,n,r}},mounted(){r.on("show_artist",this.showArtist)}}).$mount("#artist_tab");window.vol={preview_max_volume:100};let Du=document.getElementById("preview-track"),Iu=!0;var Mu={init:function(){Du.volume=1,Du.addEventListener("canplay",(function(){Du.play(),Iu=!1,n(Du).animate({volume:vol.preview_max_volume/100},500)})),Du.addEventListener("timeupdate",(function(){Du.currentTime>Du.duration-1&&(n(Du).animate({volume:0},800),Iu=!0,n("a[playing] > .preview_controls").css({opacity:0}),n("*").removeAttr("playing"),n(".preview_controls").text("play_arrow"),n(".preview_playlist_controls").text("play_arrow"))}))},stopStackedTabsPreview:function(){n(".preview_playlist_controls").filter((function(){return n(this).attr("playing")})).length>0&&(n(Du).animate({volume:0},800),Iu=!0,n(".preview_playlist_controls").removeAttr("playing"),n(".preview_playlist_controls").text("play_arrow"))},previewMouseEnter:function(e){n(e.currentTarget).css({opacity:1})},previewMouseLeave:function(e){const{currentTarget:t}=e;(n(t).parent().attr("playing")&&Iu||!n(t).parent().attr("playing"))&&n(t).css({opacity:0},200)},playPausePreview:function(e){e.preventDefault();const{currentTarget:t}=event;var r="I"==t.tagName?n(t):n(t).children("i");n(t).attr("playing")?Du.paused?(Du.play(),Iu=!1,r.text("pause"),n(Du).animate({volume:vol.preview_max_volume/100},500)):(Iu=!0,r.text("play_arrow"),n(Du).animate({volume:0},250,"swing",()=>{Du.pause()})):(n("*").removeAttr("playing"),n(t).attr("playing",!0),n(".preview_controls").text("play_arrow"),n(".preview_playlist_controls").text("play_arrow"),n(".preview_controls").css({opacity:0}),r.text("pause"),r.css({opacity:1}),Iu=!1,n(Du).animate({volume:0},250,"swing",()=>{Du.pause(),n("#preview-track_source").prop("src",n(t).data("preview")),Du.load()}))}};var Pu={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 Ru=new Ki({data:()=>({title:"",metadata:"",release_date:"",label:"",explicit:!1,image:"",type:"",link:"",body:[]}),methods:{artistView:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),playPausePreview:Mu.playPausePreview,reset(){this.title="Loading...",this.image="",this.metadata="",this.label="",this.release_date="",this.explicit=!1,this.type="",this.body=[]},addToQueue(e){dc.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:Pu.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,kt(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`,kt(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`,kt(a)?this.body=null:this.body=a}},mounted(){r.on("show_album",this.showAlbum),r.on("show_playlist",this.showPlaylist),r.on("show_spotifyplaylist",this.showSpotifyPlaylist)}}).$mount("#tracklist_tab"),Bu=new Ki({data:()=>({title:"",subtitle:"",image:"",data:{},type:"",link:"",id:"0",countries:[]}),methods:{artistView:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),convertDuration:Pu.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(Pu.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(){r.on("analyze_track",this.showTrack),r.on("analyze_album",this.showAlbum),r.on("analyze_notSupported",this.notSupported)}}).$mount("#analyzer_tab"),Fu=(new Ki({data:()=>({playlists:[],albums:[]}),methods:{artistView:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),playlistView:Uu.bind(null,"playlist"),openSettings(){document.getElementById("main_settings_tablink").click()},addToQueue(e){dc.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"),r.on("init_home",this.initHome)}}).$mount("#home_tab"),new Ki({data:()=>({country:"",id:0,countries:[],chart:[]}),methods:{artistView:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),playPausePreview:Mu.playPausePreview,previewMouseEnter:Mu.previewMouseEnter,previewMouseLeave:Mu.previewMouseLeave,convertDuration:Pu.convertDuration,addToQueue(e){e.stopPropagation(),dc.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,r.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:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),playlistView:Uu.bind(null,"playlist"),spotifyPlaylistView:Uu.bind(null,"spotifyplaylist"),playPausePreview:Mu.playPausePreview,previewMouseEnter:Mu.previewMouseEnter,previewMouseLeave:Mu.previewMouseLeave,convertDuration:Pu.convertDuration,addToQueue(e){e.stopPropagation(),dc.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"),r.emit("update_userFavorites"),localStorage.getItem("spotifyUser")&&r.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"),a("Refresh completed!","done",!0,"favorites-refresh-toast")},{once:!0})},initFavorites(e){this.updated_userFavorites(e),document.getElementById("favorites_playlist_tab").click()}},mounted(){r.on("init_favorites",this.initFavorites),r.on("updated_userFavorites",this.updated_userFavorites),r.on("updated_userSpotifyPlaylists",this.updated_userSpotifyPlaylists),r.on("updated_userPlaylists",this.updated_userPlaylists),r.on("updated_userAlbums",this.updated_userAlbums),r.on("updated_userArtist",this.updated_userArtist),r.on("updated_userTracks",this.updated_userTracks)}}).$mount("#favorites_tab"),new Ki({data:()=>({title:"",errors:[]}),methods:{reset(){this.title="",this.errors=[]},showErrors(e){this.title=e.artist+" - "+e.title,this.errors=e.errors}}}).$mount("#errors_tab")),qu=new Ki({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"),a("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),r.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")&&r.emit("login",e,!0,this.accountNum)},changeAccount(){r.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(){r.emit("logout")},initSettings(e,t,n){this.loadSettings(e,t,n),a("Settings loaded!","settings")},updateSettings(e,t){this.loadSettings(e,t),a("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,r.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,r.on("init_settings",this.initSettings),r.on("updateSettings",this.updateSettings),r.on("accountChanged",this.accountChanged),r.on("familyAccounts",this.initAccounts)}}).$mount("#settings_tab"),Hu=new Ki({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:Uu.bind(null,"artist"),albumView:Uu.bind(null,"album"),playlistView:Uu.bind(null,"playlist"),playPausePreview:Mu.playPausePreview,previewMouseEnter:Mu.previewMouseEnter,previewMouseLeave:Mu.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){dc.sendAddToQueue(e.currentTarget.dataset.link)},openQualityModal(e){Lu.open(e.currentTarget.dataset.link)},numberWithDots:Pu.numberWithDots,convertDuration:Pu.convertDuration,search(e){r.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 Gu(e){const{target:t,target:{id:n}}=e;switch(n){case"search_all_tab":Qu(t,"search","main_search");break;case"search_track_tab":Qu(t,"search","track_search");break;case"search_album_tab":Qu(t,"search","album_search");break;case"search_artist_tab":Qu(t,"search","artist_search");break;case"search_playlist_tab":Qu(t,"search","playlist_search")}}function Ku(e){const{target:t,target:{id:n}}=e;switch(n){case"favorites_playlist_tab":Qu(t,"favorites","playlist_favorites");break;case"favorites_album_tab":Qu(t,"favorites","album_favorites");break;case"favorites_artist_tab":Qu(t,"favorites","artist_favorites");break;case"favorites_track_tab":Qu(t,"favorites","track_favorites")}}function Qu(e,t,n){var r,i,o;for(windows_stack=[],zu={},i=document.getElementsByClassName(t+"_tabcontent"),r=0;r{e.addEventListener("click",Xu)})},changeTab:Qu,showView:Uu,analyzeLink:function(e){Bu.reset(),r.emit("analyzeLink",e)},showErrors:Vu};let Zu,ec,tc,nc=parseInt(localStorage.getItem("downloadTabWidth"))||300,rc={},ic=[],oc=[];function ac(e){void 0===e?(Zu.style.width="",ec.style.width=""):(Zu.style.width=e+"px",ec.style.width=e+"px")}function sc(e){let t=window.innerWidth-e.pageX+2;t<250?t=250:t>500&&(t=500),nc=t,ac(t)}function lc(e,t=!1){rc[e.uuid]=e,e.downloaded+e.failed==e.size?-1==oc.indexOf(e.uuid)&&oc.push(e.uuid):-1==ic.indexOf(e.uuid)&&ic.push(e.uuid);let r=document.getElementById("download_"+e.uuid);if(void 0!==r&&null!=r||n(ec).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)&&n("#bar_"+e.uuid).removeClass("indeterminate").addClass("determinate"),n("#bar_"+e.uuid).css("width",e.progress+"%"),e.failed>=1&&0==n("#download_"+e.uuid+" .queue_failed").length&&n("#download_"+e.uuid+" .download_info_status").append(`(${e.failed}error_outline)`),e.downloaded+e.failed==e.size){let t=n("#download_"+e.uuid).find(".queue_icon");if(0==e.failed)t.text("done");else{let r=n("#download_"+e.uuid).find(".queue_failed_button");t.addClass("clickable"),r.addClass("clickable"),t.bind("click",{item:e},Vu),r.bind("click",{item:e},Vu),e.failed>=e.size?t.text("error"):t.text("warning")}}e.init||a(e.title+" added to queue","playlist_add_check")}function uc(e){const{target:t}=e;if(!t.matches(".queue_icon[data-uuid]"))return;let i=t.innerText,o=n(t).data("uuid");switch(i){case"remove":r.emit("removeFromQueue",o)}}function cc(e){e.preventDefault(),ac(),Zu.style.transition="all 250ms ease-in-out";let t=Zu.classList.toggle("tab_hidden");t||ac(nc),localStorage.setItem("downloadTabOpen",!t)}r.on("startDownload",(function(e){n("#bar_"+e).removeClass("indeterminate").addClass("determinate")})),r.on("init_downloadQueue",(function(e){const{queue:t,queueComplete:n,currentItem:r,queueList:i}=e;n.length&&n.forEach(e=>{i[e].init=!0,lc(i[e])}),r&&(i[r].init=!0,lc(i[r],!0)),t.forEach(e=>{i[e].init=!0,lc(i[e])})})),r.on("addedToQueue",lc),r.on("removedFromQueue",(function(e){let t=ic.indexOf(e);t>-1&&(ic.splice(t,1),n("#download_"+rc[e].uuid).remove(),delete rc[e])})),r.on("finishDownload",(function(e){if(ic.indexOf(e)>-1){a(rc[e].title+" finished downloading.","done"),n("#bar_"+e).css("width","100%");let t=n("#download_"+e).find(".queue_icon");if(0==rc[e].failed)t.text("done");else{let r=n("#download_"+e).find(".queue_failed_button");t.addClass("clickable"),r.addClass("clickable"),t.bind("click",{item:rc[e]},Vu),r.bind("click",{item:rc[e]},Vu),rc[e].failed>=rc[e].size?t.text("error"):t.text("warning")}let r=ic.indexOf(e);r>-1&&(ic.splice(r,1),oc.push(e)),ic.length<=0&&a("All downloads completed!","done_all")}})),r.on("removedAllDownloads",(function(e){if(oc=[],""==e)ic=[],rc={},n(ec).html("");else{ic=[e];let t=rc[e];rc={},rc[e]=t,n(".download_object").each((function(t){n(this).attr("id")!="download_"+e&&n(this).remove()}))}})),r.on("removedFinishedDownloads",(function(){oc.forEach(e=>{n("#download_"+e).remove()}),oc=[]})),r.on("updateQueue",(function(e){const{uuid:t,downloaded:r,failed:i,progress:o}=e;t&&ic.indexOf(t)>-1&&(r&&(rc[t].downloaded++,n("#download_"+t+" .queue_downloaded").text(rc[t].downloaded+rc[t].failed)),i&&(rc[t].failed++,n("#download_"+t+" .queue_downloaded").text(rc[t].downloaded+rc[t].failed),1==rc[t].failed&&0==n("#download_"+t+" .queue_failed").length?n("#download_"+t+" .download_info_status").append('(1 error_outline)'):n("#download_"+t+" .queue_failed").text(rc[t].failed),rc[t].errors.push({message:e.error,data:e.data})),o&&(rc[t].progress=o,n("#bar_"+t).css("width",o+"%")))}));var dc={init:function(){Zu=document.getElementById("download_tab_container"),ec=document.getElementById("download_list"),tc=document.getElementById("download_tab_drag_handler"),"true"===localStorage.getItem("slimDownloads")&&ec.classList.add("slim"),"true"===localStorage.getItem("downloadTabOpen")&&(Zu.classList.remove("tab_hidden"),ac(nc)),ec.addEventListener("click",uc),document.getElementById("toggle_download_tab").addEventListener("click",cc),document.getElementById("clean_queue").addEventListener("click",()=>{r.emit("removeFinishedDownloads")}),document.getElementById("cancel_queue").addEventListener("click",()=>{r.emit("cancelAllDownloads")}),document.getElementById("open_downloads_folder").addEventListener("click",()=>{window.clientMode&&r.emit("openDownloadsFolder")}),tc.addEventListener("mousedown",e=>{e.preventDefault(),document.addEventListener("mousemove",sc)}),document.addEventListener("mouseup",()=>{document.removeEventListener("mousemove",sc)}),Zu.addEventListener("transitionend",()=>{Zu.style.transition=""}),window.addEventListener("beforeunload",()=>{localStorage.setItem("downloadTabWidth",nc)})},sendAddToQueue:function(e,t=null){if(-1!==e.indexOf(";")){e.split(";").forEach(e=>{r.emit("addToQueue",{url:e,bitrate:t})})}else""!=e&&r.emit("addToQueue",{url:e,bitrate:t})},addToQueue:lc};function fc(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)&&Hu.scrolledSearch(search_selected.split("_")[0])}function pc(e){if(13!==e.keyCode)return;let t=this.value;if(Pu.isValidURL(t))e.ctrlKey?Lu.open(t):"analyzer_tab"==window.main_selected?Yu.analyzeLink(t):dc.sendAddToQueue(t);else{if(""===t)return;t!==Hu.results.query||"search_tab"==main_selected?(document.getElementById("search_tab_content").style.display="none",r.emit("mainSearch",{term:t})):(document.getElementById("search_tab_content").style.display="block",document.getElementById("main_search_tablink").click())}}var hc={linkListeners:function(){document.getElementById("content").addEventListener("scroll",Pu.debounce(fc,100)),document.getElementById("searchbar").addEventListener("keyup",pc)}};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)}}(),dc.init(),Lu.init(),Yu.init(),hc.linkListeners(),Mu.init()})),window.addEventListener("pywebviewready",(function(){window.clientMode=!0,document.querySelector("#open_downloads_folder").classList.remove("hide")})),r.on("message",(function(e){console.log(e)})),r.on("logging_in",(function(){a("Logging in","loading",!1,"login-toast")})),r.on("init_autologin",(function(){let e=localStorage.getItem("arl"),t=localStorage.getItem("accountNum");e&&(e=e.trim(),0!=t?r.emit("login",e,!0,t):r.emit("login",e))})),r.on("logged_in",(function(e){switch(e.status){case 1:case 3:a("Logged in","done",!0,"login-toast"),e.arl&&(localStorage.setItem("arl",e.arl),n("#login_input_arl").val(e.arl)),n("#open_login_prompt").hide(),e.user&&(n("#settings_username").text(e.user.name),n("#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:a("Already logged in","done",!0,"login-toast"),e.user&&(n("#settings_username").text(e.user.name),n("#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:a("Couldn't log in","close",!0,"login-toast"),localStorage.removeItem("arl"),n("#login_input_arl").val(""),n("#open_login_prompt").show(),document.getElementById("logged_in_info").classList.add("hide"),n("#settings_username").text("Not Logged"),n("#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")}})),r.on("logged_out",(function(){a("Logged out","done",!0,"login-toast"),localStorage.removeItem("arl"),n("#login_input_arl").val(""),n("#open_login_prompt").show(),document.getElementById("logged_in_info").classList.add("hide"),n("#settings_username").text("Not Logged"),n("#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")})),r.on("cancellingCurrentItem",(function(e){a("Cancelling current item.","loading",!1,"cancelling_"+e)})),r.on("currentItemCancelled",(function(e){a("Current item cancelled.","done",!0,"cancelling_"+e)})),r.on("startAddingArtist",(function(e){a(`Adding ${e.name} albums to queue`,"loading",!1,"artist_"+e.id)})),r.on("finishAddingArtist",(function(e){a(`Added ${e.name} albums to queue`,"done",!0,"artist_"+e.id)})),r.on("startConvertingSpotifyPlaylist",(function(e){a("Converting spotify tracks to deezer tracks","loading",!1,"spotifyplaylist_"+e)})),r.on("finishConvertingSpotifyPlaylist",(function(e){a("Spotify playlist converted","done",!0,"spotifyplaylist_"+e)})),r.on("errorMessage",(function(e){a(e,"error")})),r.on("alreadyInQueue",(function(e){a(e.title+" is already in queue!","playlist_add_check")})); diff --git a/src/js/app.js b/src/js/app.js index d296a66..ce4c58e 100644 --- a/src/js/app.js +++ b/src/js/app.js @@ -60,11 +60,11 @@ socket.on('logging_in', function () { socket.on('init_autologin', function () { let arl = localStorage.getItem('arl') let accountNum = localStorage.getItem('accountNum') - if (arl){ + if (arl) { arl = arl.trim() - if (accountNum != 0){ + if (accountNum != 0) { socket.emit('login', arl, true, accountNum) - }else{ + } else { socket.emit('login', arl) } } @@ -130,27 +130,27 @@ socket.on('logged_out', function () { }) socket.on('cancellingCurrentItem', function (uuid) { - toast('Cancelling current item.', 'loading', false, 'cancelling_'+uuid) + toast('Cancelling current item.', 'loading', false, 'cancelling_' + uuid) }) socket.on('currentItemCancelled', function (uuid) { - toast('Current item cancelled.', 'done', true, 'cancelling_'+uuid) + toast('Current item cancelled.', 'done', true, 'cancelling_' + uuid) }) socket.on('startAddingArtist', function (data) { - toast(`Adding ${data.name} albums to queue`, 'loading', false, 'artist_'+data.id) + toast(`Adding ${data.name} albums to queue`, 'loading', false, 'artist_' + data.id) }) socket.on('finishAddingArtist', function (data) { - toast(`Added ${data.name} albums to queue`, 'done', true, 'artist_'+data.id) + toast(`Added ${data.name} albums to queue`, 'done', true, 'artist_' + data.id) }) socket.on('startConvertingSpotifyPlaylist', function (id) { - toast("Converting spotify tracks to deezer tracks", 'loading', false, 'spotifyplaylist_'+id) + toast('Converting spotify tracks to deezer tracks', 'loading', false, 'spotifyplaylist_' + id) }) socket.on('finishConvertingSpotifyPlaylist', function (id) { - toast("Spotify playlist converted", 'done', true, 'spotifyplaylist_'+id) + toast('Spotify playlist converted', 'done', true, 'spotifyplaylist_' + id) }) socket.on('errorMessage', function (error) { diff --git a/src/js/modules/components/favorites-tab.js b/src/js/modules/components/favorites-tab.js index 522855e..761ac75 100644 --- a/src/js/modules/components/favorites-tab.js +++ b/src/js/modules/components/favorites-tab.js @@ -5,6 +5,7 @@ import Downloads from '../downloads.js' import QualityModal from '../quality-modal.js' import TrackPreview from '../track-preview.js' import Utils from '../utils.js' +import { toast } from '../toasts' const FavoritesTab = new Vue({ data() { @@ -47,18 +48,29 @@ const FavoritesTab = new Vue({ updated_userTracks(data) { this.tracks = data }, - reloadTabs(){ - this.$refs.reloadButton.classList.add("spin") + reloadTabs() { + this.$refs.reloadButton.classList.add('spin') socket.emit('update_userFavorites') - if (localStorage.getItem('spotifyUser')) socket.emit('update_userSpotifyPlaylists', localStorage.getItem('spotifyUser')) + if (localStorage.getItem('spotifyUser')) + socket.emit('update_userSpotifyPlaylists', localStorage.getItem('spotifyUser')) }, - updated_userFavorites(data){ + updated_userFavorites(data) { const { tracks, albums, artists, playlists } = data this.tracks = tracks this.albums = albums this.artists = artists this.playlists = playlists - this.$refs.reloadButton.classList.remove("spin") + + // Removing animation class only when the animation has completed an iteration + // Prevents animation ugly stutter + this.$refs.reloadButton.addEventListener( + 'animationiteration', + () => { + this.$refs.reloadButton.classList.remove('spin') + toast('Refresh completed!', 'done', true, 'favorites-refresh-toast') + }, + { once: true } + ) }, initFavorites(data) { this.updated_userFavorites(data) diff --git a/src/styles/scss/base/_animations.scss b/src/styles/scss/base/_animations.scss new file mode 100644 index 0000000..35aac95 --- /dev/null +++ b/src/styles/scss/base/_animations.scss @@ -0,0 +1,9 @@ +@keyframes spin { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } +} diff --git a/src/styles/scss/style.scss b/src/styles/scss/style.scss index e6382c5..509468a 100644 --- a/src/styles/scss/style.scss +++ b/src/styles/scss/style.scss @@ -1,6 +1,7 @@ @import './base/base'; @import './base/normalize'; @import './base/mixins'; +@import './base/animations'; @import './globals/globals'; @import './globals/tables'; diff --git a/src/styles/scss/tabs/_favorites-tab.scss b/src/styles/scss/tabs/_favorites-tab.scss index 9c2c110..cf4f3c5 100644 --- a/src/styles/scss/tabs/_favorites-tab.scss +++ b/src/styles/scss/tabs/_favorites-tab.scss @@ -2,26 +2,14 @@ color: var(--accent-text); } -div.reload-button { - width: 36px; - height: 36px; -} -div.reload-button i{ - padding: 6px; -} +.reload-button { + &.reload-button--inline { + display: inline-block; + } -div.reload-button.spin { - animation-name: spin; - animation-duration: 0.5s; - animation-iteration-count: infinite; - animation-timing-function: ease-out; -} - -@keyframes spin { - from { - transform:rotate(0deg); - } - to { - transform:rotate(360deg); - } + &.spin { + i { + animation: spin 500ms infinite ease-out reverse; + } + } } diff --git a/src/styles/scss/tabs/_tabs.scss b/src/styles/scss/tabs/_tabs.scss index 42315ae..3e26866 100644 --- a/src/styles/scss/tabs/_tabs.scss +++ b/src/styles/scss/tabs/_tabs.scss @@ -9,7 +9,7 @@ } .tab button { - background-color: var(--primary-background); + background-color: var(--main-background); color: var(--foreground); } @@ -42,8 +42,7 @@ &__tab { flex: 1; font-size: 1.2rem; - // width: 10rem; - padding: 1em; + padding: .8em; border-top: 3px solid var(--foreground); text-align: center;